mirror of
https://github.com/home-assistant/frontend.git
synced 2025-10-24 02:59:47 +00:00
Compare commits
1562 Commits
20200427.2
...
layout-str
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cefb3c3f01 | ||
|
|
909f3a3005 | ||
|
|
4930532c7b | ||
|
|
8a42e65c6a | ||
|
|
5d4121a9b4 | ||
|
|
3d83d5f4b5 | ||
|
|
f9dece0743 | ||
|
|
ac0871d0e8 | ||
|
|
ffc19e591d | ||
|
|
c53380ca3d | ||
|
|
7c74a2026a | ||
|
|
adaed438d9 | ||
|
|
baf38305cb | ||
|
|
8254712521 | ||
|
|
53214781e3 | ||
|
|
88cbbbdf65 | ||
|
|
7f2ebb4bde | ||
|
|
f1abb60e4a | ||
|
|
e014c7aff6 | ||
|
|
b79c03433e | ||
|
|
34eb4d974d | ||
|
|
3264be3c5e | ||
|
|
655f4f75fb | ||
|
|
4383f31696 | ||
|
|
99eb15d15e | ||
|
|
3a5d854e6d | ||
|
|
1e90c6387c | ||
|
|
2cca25f4d0 | ||
|
|
565724d201 | ||
|
|
3e4955becd | ||
|
|
7b560c727f | ||
|
|
35abd9dfdb | ||
|
|
0d9ab8fdd0 | ||
|
|
303f9290a8 | ||
|
|
e0c4dc08a1 | ||
|
|
8c655883fe | ||
|
|
ba90785115 | ||
|
|
7b392b626b | ||
|
|
8e4ceb7d48 | ||
|
|
2ab1c6e9a9 | ||
|
|
dbdced0971 | ||
|
|
5e481880bd | ||
|
|
faec063f34 | ||
|
|
bbea38d227 | ||
|
|
a0ef60de49 | ||
|
|
3313572606 | ||
|
|
c4f850cb14 | ||
|
|
3bdab738c6 | ||
|
|
faaef31b9f | ||
|
|
ca7b8b8b4c | ||
|
|
9ca84e0694 | ||
|
|
daaf2b1796 | ||
|
|
25f7cbea5a | ||
|
|
c485ea9d7b | ||
|
|
295390c8e9 | ||
|
|
3ebf816ce2 | ||
|
|
0e362b851b | ||
|
|
8d7ba19a08 | ||
|
|
08f4aa9d10 | ||
|
|
98175d5c72 | ||
|
|
7d4cad90bc | ||
|
|
335354d962 | ||
|
|
fe31d15d27 | ||
|
|
7ceb6eb50d | ||
|
|
4c4db46aa8 | ||
|
|
b5724ed343 | ||
|
|
cae94175fe | ||
|
|
0494a9d410 | ||
|
|
c261b5c1ce | ||
|
|
c89e17ac00 | ||
|
|
c5b0ebf76d | ||
|
|
1d08978d6c | ||
|
|
fc78b6c933 | ||
|
|
480a5718fc | ||
|
|
f093bd115c | ||
|
|
8a86beff14 | ||
|
|
6020890384 | ||
|
|
124aa947e2 | ||
|
|
e1add14453 | ||
|
|
e3293837a8 | ||
|
|
5cb2743780 | ||
|
|
6f0c79ec25 | ||
|
|
7de7d1d926 | ||
|
|
89175f8e85 | ||
|
|
fc48c59eb0 | ||
|
|
51332bc7e7 | ||
|
|
7403405d12 | ||
|
|
1d13947e71 | ||
|
|
f6cb1ffe20 | ||
|
|
6d92b5651a | ||
|
|
3ea5bb2a6c | ||
|
|
1d367eca69 | ||
|
|
d4bf3a2ec3 | ||
|
|
0ef8881660 | ||
|
|
d7d1121f7d | ||
|
|
7f089c309f | ||
|
|
4dcc0bb66c | ||
|
|
0049be7feb | ||
|
|
39ff641be9 | ||
|
|
e2fed24995 | ||
|
|
c0aa353f83 | ||
|
|
d8521be63d | ||
|
|
6d4569c89d | ||
|
|
cd07553b59 | ||
|
|
641bfcc9f7 | ||
|
|
6c01371958 | ||
|
|
7b00260b1a | ||
|
|
875142373e | ||
|
|
ba505b15ef | ||
|
|
17d227b142 | ||
|
|
e7e192ffe3 | ||
|
|
c53ec6e12d | ||
|
|
aad6492a6a | ||
|
|
fd5b125c2d | ||
|
|
5acee76c70 | ||
|
|
10916fa82a | ||
|
|
f69951a523 | ||
|
|
38ba85e89d | ||
|
|
97023921b8 | ||
|
|
f835810f0a | ||
|
|
46f5589530 | ||
|
|
ff9840c8ef | ||
|
|
0c197558a1 | ||
|
|
c409ba149d | ||
|
|
0b896ddfb1 | ||
|
|
45721eb4fe | ||
|
|
1289bd03b2 | ||
|
|
c1ba8ba6b8 | ||
|
|
4973d8f629 | ||
|
|
3aff4c96c4 | ||
|
|
4005bc8985 | ||
|
|
62e9792c39 | ||
|
|
33183cc595 | ||
|
|
394d552856 | ||
|
|
aa4f0929e0 | ||
|
|
f99b9215e3 | ||
|
|
c51d621fee | ||
|
|
7499892bc2 | ||
|
|
cbddebeaa8 | ||
|
|
bbe4c95109 | ||
|
|
4c6f9f0dd8 | ||
|
|
90f7dba793 | ||
|
|
7c492338a2 | ||
|
|
530f494df8 | ||
|
|
8fd1f35c59 | ||
|
|
af1518e924 | ||
|
|
473e381d75 | ||
|
|
7d3acc747d | ||
|
|
bf7424a67c | ||
|
|
3fb35871c7 | ||
|
|
d6d20cd704 | ||
|
|
9cc6a6b885 | ||
|
|
ee0be7b6d0 | ||
|
|
a856337eae | ||
|
|
6cf47ba4eb | ||
|
|
3b7a189708 | ||
|
|
79c542b76a | ||
|
|
e37b7bd73f | ||
|
|
d6f3c34b33 | ||
|
|
bc5cb46e7d | ||
|
|
c7b747c4fa | ||
|
|
d3c51d7acd | ||
|
|
b6881d797c | ||
|
|
b9f802939c | ||
|
|
6558c2c065 | ||
|
|
37a089c868 | ||
|
|
f68eff6bb3 | ||
|
|
88a525f1a7 | ||
|
|
7e6153ba7d | ||
|
|
34fddd5940 | ||
|
|
0e5d6fe8d8 | ||
|
|
e1342a0d9d | ||
|
|
0cc2d3aaa7 | ||
|
|
67814505b3 | ||
|
|
bae29c6d62 | ||
|
|
a0e67d4c03 | ||
|
|
131bc5fbf7 | ||
|
|
051218e29b | ||
|
|
6ace8307d8 | ||
|
|
e84bef44b7 | ||
|
|
3186d762f2 | ||
|
|
c97a3b0a56 | ||
|
|
78f1bb3b91 | ||
|
|
67707fbc90 | ||
|
|
2a57ffa615 | ||
|
|
216fce74f8 | ||
|
|
6cd3e6652a | ||
|
|
fe7d79cee6 | ||
|
|
2f4e7b388b | ||
|
|
2e289cd152 | ||
|
|
21a3dcf06c | ||
|
|
7f56add914 | ||
|
|
88701c6167 | ||
|
|
e4ce6117a1 | ||
|
|
cec2a61bdf | ||
|
|
8275ac5853 | ||
|
|
b7bcf97365 | ||
|
|
fa28b480f1 | ||
|
|
4bb95b7396 | ||
|
|
5a9bd73e8b | ||
|
|
4fe0276914 | ||
|
|
5e8bda55b4 | ||
|
|
d09c4898c1 | ||
|
|
6ae67ed299 | ||
|
|
32ff166a74 | ||
|
|
8feae04281 | ||
|
|
129f9c147b | ||
|
|
6e336dd207 | ||
|
|
161561c48a | ||
|
|
c162e84383 | ||
|
|
dc8d80a6e5 | ||
|
|
293f67968c | ||
|
|
4dcf26236e | ||
|
|
a0e8d69243 | ||
|
|
33cd9bf516 | ||
|
|
0132797f2f | ||
|
|
7e2db0aa4e | ||
|
|
cc1d50491b | ||
|
|
461b86a04b | ||
|
|
9a3a7c28f4 | ||
|
|
1c9d0200ca | ||
|
|
0037cd2e69 | ||
|
|
028ae061da | ||
|
|
2e47763ecc | ||
|
|
924e4a45d0 | ||
|
|
8361b9553b | ||
|
|
e52be20fba | ||
|
|
da12233ade | ||
|
|
57500f6c97 | ||
|
|
199e17d0b1 | ||
|
|
3b91343082 | ||
|
|
1753c9163c | ||
|
|
89e5953e89 | ||
|
|
5bfd25c8c6 | ||
|
|
e555b24f50 | ||
|
|
14db37459f | ||
|
|
1d9779d47c | ||
|
|
3dedbc5457 | ||
|
|
facb3266c6 | ||
|
|
01fe5dd2f7 | ||
|
|
9b22b1e499 | ||
|
|
4bc8818145 | ||
|
|
48ef8c86c2 | ||
|
|
89f359a52f | ||
|
|
13b8160d74 | ||
|
|
f1c16d6674 | ||
|
|
76a088e177 | ||
|
|
630d8c3bb6 | ||
|
|
744efa30f2 | ||
|
|
bf4a94dc48 | ||
|
|
ce4ba2f6f1 | ||
|
|
5b232b5d35 | ||
|
|
35151bbac7 | ||
|
|
f0e959319e | ||
|
|
d0c4475724 | ||
|
|
99935f1e59 | ||
|
|
fbb43821ba | ||
|
|
c7f5c6c1d1 | ||
|
|
d26f1fa371 | ||
|
|
c3718ff7dd | ||
|
|
d63493a859 | ||
|
|
a72183851a | ||
|
|
40b2387667 | ||
|
|
d814aa36a7 | ||
|
|
e37eebe4ad | ||
|
|
0baaaefdf8 | ||
|
|
58a58906e7 | ||
|
|
bec0d9b00e | ||
|
|
e6a4ab789b | ||
|
|
36c1d3230c | ||
|
|
30466ec3fe | ||
|
|
ce414a5ca9 | ||
|
|
e4e6edd573 | ||
|
|
79927f4dc9 | ||
|
|
603b833757 | ||
|
|
ba99d1a10d | ||
|
|
efe97e8f51 | ||
|
|
5ec23bb7ab | ||
|
|
9b4d01ab75 | ||
|
|
40191a88d4 | ||
|
|
a19477d179 | ||
|
|
bf98a78f3d | ||
|
|
ba4c2fc1bd | ||
|
|
b56e9ef028 | ||
|
|
dbbd34c520 | ||
|
|
ccb69dbdfa | ||
|
|
11e555ef6f | ||
|
|
61e17395c9 | ||
|
|
733ce3b6b8 | ||
|
|
375f143199 | ||
|
|
2419f35eb9 | ||
|
|
21867c3576 | ||
|
|
28853b28bc | ||
|
|
e2f27568a5 | ||
|
|
98b2b796b0 | ||
|
|
b8f3fcf00b | ||
|
|
d3fda9a821 | ||
|
|
19e69dc13e | ||
|
|
48543a2dad | ||
|
|
b22f5ae5c2 | ||
|
|
2acb6a28fe | ||
|
|
1064cdb79d | ||
|
|
bd7cb1c877 | ||
|
|
6c314982dc | ||
|
|
d54710f113 | ||
|
|
1346156ecd | ||
|
|
a2d9f9b417 | ||
|
|
3de78cca2d | ||
|
|
5fa7cd9fa9 | ||
|
|
a78c00fb41 | ||
|
|
edc2a03d1c | ||
|
|
174f8f5823 | ||
|
|
9fbc94e8d8 | ||
|
|
6aff35196d | ||
|
|
eceed4ed74 | ||
|
|
7428731eac | ||
|
|
89b07ea0ae | ||
|
|
d16daf0fd9 | ||
|
|
211ab4eea8 | ||
|
|
dbd53f8d14 | ||
|
|
a27680b8c0 | ||
|
|
07fc9b98cc | ||
|
|
33582c0448 | ||
|
|
73be0fef75 | ||
|
|
611202c905 | ||
|
|
e553f35a68 | ||
|
|
673649a603 | ||
|
|
c4ed743370 | ||
|
|
682fa0d3eb | ||
|
|
30f34eee22 | ||
|
|
eab76bf85b | ||
|
|
bcf405bf9d | ||
|
|
3c4b0d4a74 | ||
|
|
fb9bd0eb7d | ||
|
|
7e2dc04123 | ||
|
|
54ec37994c | ||
|
|
4a5935ee36 | ||
|
|
01b9a07320 | ||
|
|
0fcf0dcd18 | ||
|
|
80481f142a | ||
|
|
2be08ce7ab | ||
|
|
37eb5af3d4 | ||
|
|
8c8151be92 | ||
|
|
baf31d1c1e | ||
|
|
af2250835a | ||
|
|
6f2a759ba3 | ||
|
|
5065901196 | ||
|
|
41b59e6e11 | ||
|
|
43afdaadc6 | ||
|
|
83c5151792 | ||
|
|
0880ab67c6 | ||
|
|
c0b2143c7c | ||
|
|
c1de162c99 | ||
|
|
a7ef8aba68 | ||
|
|
3ee4c11a99 | ||
|
|
990ae10dc2 | ||
|
|
52b2fd046b | ||
|
|
9f41f80a91 | ||
|
|
eec4a91ad8 | ||
|
|
7c51001c3c | ||
|
|
a4ea4b1f5f | ||
|
|
19fc37539e | ||
|
|
ce7acb0feb | ||
|
|
105b7678b8 | ||
|
|
b67575586e | ||
|
|
3dc6898673 | ||
|
|
a73754c1b5 | ||
|
|
1ebf1c00d6 | ||
|
|
7dac7d757e | ||
|
|
b1f3192b95 | ||
|
|
16984d18bb | ||
|
|
e603893d77 | ||
|
|
a7998b30c6 | ||
|
|
3277a4e8c3 | ||
|
|
7e769d0e14 | ||
|
|
713e0579f8 | ||
|
|
6e130cc020 | ||
|
|
eb036a12d9 | ||
|
|
534d1f5055 | ||
|
|
cbef909657 | ||
|
|
874f3b32b3 | ||
|
|
2fd017cf73 | ||
|
|
5740b018a7 | ||
|
|
288bf6805a | ||
|
|
02d37a369a | ||
|
|
1d316c3258 | ||
|
|
a56ce62f1a | ||
|
|
c268f42851 | ||
|
|
7251e802ab | ||
|
|
5b1a2d10c2 | ||
|
|
2dd7f292b1 | ||
|
|
213c53e307 | ||
|
|
ce07dfd8ac | ||
|
|
c1dba462e8 | ||
|
|
47f0d74812 | ||
|
|
ce80285f8d | ||
|
|
d2dd1a43dd | ||
|
|
12d73fe90d | ||
|
|
c2741638b2 | ||
|
|
4a7fb3d509 | ||
|
|
f6ff652ca4 | ||
|
|
6165cb0f83 | ||
|
|
1f361b7b10 | ||
|
|
5269ff978b | ||
|
|
55595493a9 | ||
|
|
ad3ff0aba7 | ||
|
|
ce48546cef | ||
|
|
35b3bc995e | ||
|
|
63f60019d1 | ||
|
|
0d741b6275 | ||
|
|
0df9080bbb | ||
|
|
ddcf89e6a2 | ||
|
|
5de225d5d4 | ||
|
|
5cddb482f1 | ||
|
|
c000d724de | ||
|
|
504055f331 | ||
|
|
7f6880f40e | ||
|
|
02e4e3c892 | ||
|
|
993d73c359 | ||
|
|
97ca0b818e | ||
|
|
44166f76d4 | ||
|
|
557d6d37a1 | ||
|
|
d3ad56a307 | ||
|
|
0641022ec5 | ||
|
|
80c7a8473a | ||
|
|
d9a954ca91 | ||
|
|
c219f64322 | ||
|
|
f7a9ecff21 | ||
|
|
2b3126ae04 | ||
|
|
934c227545 | ||
|
|
cc0515c217 | ||
|
|
55ba75f2bc | ||
|
|
c220228566 | ||
|
|
26b476ab3c | ||
|
|
b8a67d530f | ||
|
|
b08c96d2db | ||
|
|
4773c39a57 | ||
|
|
892843b290 | ||
|
|
733244531e | ||
|
|
66633273e2 | ||
|
|
0405adcd16 | ||
|
|
426a7ac8dd | ||
|
|
3bf6205ff7 | ||
|
|
c7f4986e61 | ||
|
|
0f0a3fdaf7 | ||
|
|
7d6911b140 | ||
|
|
b8777539d7 | ||
|
|
b5b1849ab3 | ||
|
|
0e10c81025 | ||
|
|
5fc0eaef1a | ||
|
|
113718c3c1 | ||
|
|
701bea6cae | ||
|
|
8d516ed12a | ||
|
|
667c5744f2 | ||
|
|
80b7c840e2 | ||
|
|
919c86796f | ||
|
|
c90c88ecbf | ||
|
|
d9ba0e2c46 | ||
|
|
45b2fc590b | ||
|
|
17ffdb0247 | ||
|
|
c2fba15fc6 | ||
|
|
5937be695f | ||
|
|
a076fcde84 | ||
|
|
ede9931903 | ||
|
|
722e01608c | ||
|
|
af926370d6 | ||
|
|
5971aee02e | ||
|
|
cce7ad449a | ||
|
|
d437dd5919 | ||
|
|
f1980730d2 | ||
|
|
47773e9cae | ||
|
|
60969b0916 | ||
|
|
ecc7925d03 | ||
|
|
6d3010dcc7 | ||
|
|
0164bafbf1 | ||
|
|
3940606167 | ||
|
|
da9faccada | ||
|
|
7e708b3bf7 | ||
|
|
05630c9896 | ||
|
|
369c56db73 | ||
|
|
9873459169 | ||
|
|
7776b3766b | ||
|
|
29c9004654 | ||
|
|
601c909004 | ||
|
|
72aa9a3b62 | ||
|
|
2ecf7bca97 | ||
|
|
cbdfaccdb2 | ||
|
|
93d1b9a2d5 | ||
|
|
bfb5ee794e | ||
|
|
9ae8bd238b | ||
|
|
98a64e3114 | ||
|
|
0171f3aec7 | ||
|
|
2c827bab9a | ||
|
|
ec920093d4 | ||
|
|
4289ff6652 | ||
|
|
cd32ef60da | ||
|
|
6ef3d091e1 | ||
|
|
0f59496778 | ||
|
|
795b670b3c | ||
|
|
4ad65e3d69 | ||
|
|
f48b1150cf | ||
|
|
198db8bc68 | ||
|
|
3ae447ca44 | ||
|
|
a2ec878ef0 | ||
|
|
d43b5d3337 | ||
|
|
11e3503dc2 | ||
|
|
accf44b769 | ||
|
|
b612c0e0d6 | ||
|
|
771c7518e6 | ||
|
|
4f2bad034a | ||
|
|
0456669aeb | ||
|
|
2eb71321e7 | ||
|
|
d2e9e22e4e | ||
|
|
e2427c8dce | ||
|
|
26162815c8 | ||
|
|
d0c86ea2f7 | ||
|
|
4f5b4d4472 | ||
|
|
10d71587e7 | ||
|
|
9ac777d687 | ||
|
|
7d1f9f3981 | ||
|
|
a214ab463e | ||
|
|
2f21f6ef8a | ||
|
|
590cd8500d | ||
|
|
f48a28264f | ||
|
|
51953bce09 | ||
|
|
c445d4b839 | ||
|
|
9dabce1dd7 | ||
|
|
6b77f08d86 | ||
|
|
50e03d41ab | ||
|
|
4759c89628 | ||
|
|
458ab9b1e0 | ||
|
|
dfb2a7153b | ||
|
|
e9141d82f3 | ||
|
|
d9f42712e4 | ||
|
|
da0658f3d9 | ||
|
|
412a5a6d8e | ||
|
|
9cf9e6edd8 | ||
|
|
28050fc9fb | ||
|
|
ea9f227fa8 | ||
|
|
05164e90fb | ||
|
|
97156ccf8a | ||
|
|
003d55968e | ||
|
|
98dd21b75c | ||
|
|
a349e34bc2 | ||
|
|
245c825cbf | ||
|
|
4ba6698c4b | ||
|
|
dac6edea90 | ||
|
|
b2e2dbe0c2 | ||
|
|
f822fa0d57 | ||
|
|
bbee94edba | ||
|
|
c39c408332 | ||
|
|
dde4a40e69 | ||
|
|
1afa4d2868 | ||
|
|
d25f371d6c | ||
|
|
948261d1d1 | ||
|
|
04b7749f85 | ||
|
|
8668f0ff5b | ||
|
|
b7d8ff6c99 | ||
|
|
0894a30f13 | ||
|
|
bd511887a7 | ||
|
|
0304c0eca0 | ||
|
|
6d5c6e2fbc | ||
|
|
e7e7912519 | ||
|
|
b9c41d8f99 | ||
|
|
25a2264ac3 | ||
|
|
ad64657c74 | ||
|
|
106f18a73a | ||
|
|
0fb38140a6 | ||
|
|
60133941ae | ||
|
|
76db64c073 | ||
|
|
24b390ba03 | ||
|
|
b4d34d9085 | ||
|
|
f80bea27a9 | ||
|
|
4b846964be | ||
|
|
e6357e2eef | ||
|
|
d538b6145f | ||
|
|
229ba3a75c | ||
|
|
672b867847 | ||
|
|
ca1dacd621 | ||
|
|
26abb4301d | ||
|
|
045dac59af | ||
|
|
1ffa87ea23 | ||
|
|
357df2bf68 | ||
|
|
24f3db3e3f | ||
|
|
4bb51b0120 | ||
|
|
32b9c1eba1 | ||
|
|
40bffc1d25 | ||
|
|
ed2c4e2642 | ||
|
|
b3353e220a | ||
|
|
7dc917babf | ||
|
|
00dbba04a2 | ||
|
|
3efd1a0451 | ||
|
|
b7d7ca4014 | ||
|
|
854a54e9c6 | ||
|
|
4f4edb109f | ||
|
|
265bfeb889 | ||
|
|
96110637d9 | ||
|
|
ad34f98e6d | ||
|
|
a8a1563586 | ||
|
|
9b25a54a47 | ||
|
|
4b8c96c769 | ||
|
|
c62ff85e73 | ||
|
|
7d5a27ec0f | ||
|
|
d6aba040dd | ||
|
|
ca4757db5b | ||
|
|
c917b67cbd | ||
|
|
9659c97978 | ||
|
|
7d862d6f2a | ||
|
|
9c80776d8c | ||
|
|
d5cd288fe8 | ||
|
|
239e817779 | ||
|
|
1986215919 | ||
|
|
239f5f1a2f | ||
|
|
3bca32c6d5 | ||
|
|
183eff745d | ||
|
|
4392d78ff6 | ||
|
|
858196ab53 | ||
|
|
fb75d8c1f2 | ||
|
|
7628569579 | ||
|
|
8a9d5f7753 | ||
|
|
cdcccf5089 | ||
|
|
de95c92e2d | ||
|
|
3030b8d476 | ||
|
|
92ed14c0e4 | ||
|
|
5b94a4de9a | ||
|
|
709112c498 | ||
|
|
e465ec8835 | ||
|
|
f6eb31bf9d | ||
|
|
426f939982 | ||
|
|
fab6cebf0d | ||
|
|
ff081dd0f1 | ||
|
|
868399ed6f | ||
|
|
1bc9b95289 | ||
|
|
9af805ab5e | ||
|
|
6b88081360 | ||
|
|
667c828359 | ||
|
|
50d37ce4f6 | ||
|
|
af0246cd27 | ||
|
|
857e4e49d8 | ||
|
|
c1afed7f98 | ||
|
|
5480e54185 | ||
|
|
99d0a0a6fd | ||
|
|
8a998369d6 | ||
|
|
8b490c5047 | ||
|
|
7e70ba6ab2 | ||
|
|
90e09fc384 | ||
|
|
266f2e763d | ||
|
|
c979cfb912 | ||
|
|
8ee29b1e43 | ||
|
|
26fbc07cac | ||
|
|
f01fe65be4 | ||
|
|
3fdd6a80f9 | ||
|
|
da1de8db1d | ||
|
|
dd1bf7b49d | ||
|
|
f18913b5a0 | ||
|
|
a2cd227f1a | ||
|
|
78e64e1f60 | ||
|
|
23a9b79320 | ||
|
|
76394ce341 | ||
|
|
1935df1faa | ||
|
|
5af4ce28ab | ||
|
|
ce8ee569c4 | ||
|
|
b0508f430e | ||
|
|
2139a80a7a | ||
|
|
aa4bc2ce03 | ||
|
|
fa65f84e09 | ||
|
|
c06357a351 | ||
|
|
092a02a624 | ||
|
|
b9699f745f | ||
|
|
7fa9f10c30 | ||
|
|
7bf0655dae | ||
|
|
96c5fdcbeb | ||
|
|
c2e6d40382 | ||
|
|
810d2a1ceb | ||
|
|
af74f21af9 | ||
|
|
cdf7558a8e | ||
|
|
41b86e6c10 | ||
|
|
085c6f8bdd | ||
|
|
3039c678a5 | ||
|
|
498882d014 | ||
|
|
6c2b8c2abb | ||
|
|
e955cc4378 | ||
|
|
eb96dd4803 | ||
|
|
e0bdef98a6 | ||
|
|
1130007d14 | ||
|
|
d99d092784 | ||
|
|
e3b18a33ca | ||
|
|
1890aab1e6 | ||
|
|
42bf350034 | ||
|
|
5ff52ea113 | ||
|
|
432e3ba636 | ||
|
|
f7ab52fe9a | ||
|
|
ad8430049d | ||
|
|
2dffe7ba9e | ||
|
|
5b8f97e0f6 | ||
|
|
b3a763a48d | ||
|
|
07569f10b5 | ||
|
|
7c5a78a1cf | ||
|
|
5cca5bfe86 | ||
|
|
0e021e7d7d | ||
|
|
b30ee884a7 | ||
|
|
869b7c85ca | ||
|
|
4d0d1ed2a1 | ||
|
|
291983e4c3 | ||
|
|
909cff2158 | ||
|
|
4e676b1dba | ||
|
|
9149bb9333 | ||
|
|
4631994f20 | ||
|
|
82e9178320 | ||
|
|
67b4688168 | ||
|
|
6e0e169b6e | ||
|
|
100ba8edfa | ||
|
|
d7448ecb95 | ||
|
|
8b1801f378 | ||
|
|
01a4d57566 | ||
|
|
7edc9064d9 | ||
|
|
30c47a65f4 | ||
|
|
0889f42a00 | ||
|
|
4999f1ad51 | ||
|
|
f15fbe53cf | ||
|
|
046f7b5153 | ||
|
|
5339fe6e06 | ||
|
|
de7ffb10cb | ||
|
|
80224e6974 | ||
|
|
0c7c536f73 | ||
|
|
e5c386c39a | ||
|
|
bb2462483e | ||
|
|
d5bc498373 | ||
|
|
979b7ae651 | ||
|
|
c73330a466 | ||
|
|
efe8eca4e3 | ||
|
|
a37aad18b7 | ||
|
|
cfa0c45213 | ||
|
|
509481ef06 | ||
|
|
9aa8175e23 | ||
|
|
76f59d99a2 | ||
|
|
bd66bd6cf0 | ||
|
|
d69333dea4 | ||
|
|
3fd7899b93 | ||
|
|
8f8a2cea56 | ||
|
|
879011c8e9 | ||
|
|
d5794c3e2e | ||
|
|
61dbae8b8b | ||
|
|
fcc22ba560 | ||
|
|
2adeb88fe6 | ||
|
|
e63a78bcdb | ||
|
|
b065f002a4 | ||
|
|
349a5f52b1 | ||
|
|
aa5e20df05 | ||
|
|
793b9f238c | ||
|
|
9c4fdaa4f3 | ||
|
|
d1a9cb488a | ||
|
|
faee2c3e1b | ||
|
|
b7845c318e | ||
|
|
426a0727c3 | ||
|
|
584e509a9c | ||
|
|
f3639c2663 | ||
|
|
1431e75f8b | ||
|
|
be8812e0af | ||
|
|
fd6436d490 | ||
|
|
fd1342f9d1 | ||
|
|
5fa0012195 | ||
|
|
9dbb67ef01 | ||
|
|
d16e2f37d4 | ||
|
|
d9e8b53ffe | ||
|
|
1997e63b7c | ||
|
|
6f673359ff | ||
|
|
45dfbff10a | ||
|
|
348ee96274 | ||
|
|
8edee32e77 | ||
|
|
6d8d263ca6 | ||
|
|
35923709e2 | ||
|
|
fdd4d53448 | ||
|
|
06419f662e | ||
|
|
57763ef032 | ||
|
|
8e506f7749 | ||
|
|
c7f8fe1468 | ||
|
|
4156a4e36d | ||
|
|
ba3cc7df0f | ||
|
|
0c212d39eb | ||
|
|
3bd2e8dbf5 | ||
|
|
5292119e6e | ||
|
|
994a397231 | ||
|
|
353b71f803 | ||
|
|
eb12afe8cc | ||
|
|
4a176f1b43 | ||
|
|
8e228baa82 | ||
|
|
154b53b0d8 | ||
|
|
a3f680d80c | ||
|
|
0d75fe6b81 | ||
|
|
4070380ded | ||
|
|
41195dcef0 | ||
|
|
78a1e45be2 | ||
|
|
d8e88bc58d | ||
|
|
448e9b71b8 | ||
|
|
2e178164cc | ||
|
|
9f2e3f05a1 | ||
|
|
405bd29ebd | ||
|
|
b39b54e0ac | ||
|
|
119c5c9071 | ||
|
|
7a4c9b128c | ||
|
|
dc5b92030f | ||
|
|
db0a010d7c | ||
|
|
a117a19bdf | ||
|
|
5f46fdb406 | ||
|
|
f0201de4cc | ||
|
|
6cd51a318b | ||
|
|
c1a4b27bc7 | ||
|
|
5113222050 | ||
|
|
90f12eea5e | ||
|
|
2403743701 | ||
|
|
3e6a759309 | ||
|
|
35a430e9f4 | ||
|
|
b644f7d23d | ||
|
|
7702a05464 | ||
|
|
493af5fe82 | ||
|
|
ac66a59cec | ||
|
|
e10c8faa47 | ||
|
|
9b7d17433c | ||
|
|
a40eb1ff43 | ||
|
|
04df6c3e9e | ||
|
|
1b970e5a66 | ||
|
|
75406c2d01 | ||
|
|
64d3511fbc | ||
|
|
c610f54977 | ||
|
|
090ad34f78 | ||
|
|
358c5205d2 | ||
|
|
5503cd0589 | ||
|
|
dae42b1bd9 | ||
|
|
06a25284e8 | ||
|
|
5989560f15 | ||
|
|
63c995e5da | ||
|
|
dc5607f554 | ||
|
|
d49302c032 | ||
|
|
63fef9bd4b | ||
|
|
6599351d45 | ||
|
|
47e9531972 | ||
|
|
3ba31483f4 | ||
|
|
f4ca94f2e1 | ||
|
|
67f9be2b77 | ||
|
|
e2fd155e1b | ||
|
|
931068dede | ||
|
|
bc4c9cc40d | ||
|
|
294665fbe8 | ||
|
|
e8f6a79c8f | ||
|
|
5fd8b5c5b9 | ||
|
|
226b2a73af | ||
|
|
42d421a6fc | ||
|
|
a90203f256 | ||
|
|
c3ef79caa9 | ||
|
|
1439afcd9c | ||
|
|
d263b19910 | ||
|
|
1e477226ea | ||
|
|
026fc1d2e3 | ||
|
|
2d4bd9857a | ||
|
|
8f48f5b45c | ||
|
|
22210b7400 | ||
|
|
7d05855ee0 | ||
|
|
b2460cbc3d | ||
|
|
4561957e56 | ||
|
|
3367fadc3a | ||
|
|
d7e409b042 | ||
|
|
a0b28e8ad1 | ||
|
|
f928a8e58e | ||
|
|
0bc4b3d0fa | ||
|
|
e352768388 | ||
|
|
6835b73e49 | ||
|
|
f1503f871b | ||
|
|
c4d8aba5c8 | ||
|
|
39f24c41ad | ||
|
|
21644ec889 | ||
|
|
613470b44d | ||
|
|
6c918e346b | ||
|
|
bce8539572 | ||
|
|
aab86e00ec | ||
|
|
2a58726caf | ||
|
|
4163b35b32 | ||
|
|
9c6dac8180 | ||
|
|
80fc37724b | ||
|
|
77b25f5132 | ||
|
|
684f098450 | ||
|
|
d09f74d30f | ||
|
|
3d973b112e | ||
|
|
96986164a4 | ||
|
|
78152c20a9 | ||
|
|
2bb64e9e2f | ||
|
|
746844dfc8 | ||
|
|
41b613a2d7 | ||
|
|
3b3aeea224 | ||
|
|
71c592a0ce | ||
|
|
15193fcf5f | ||
|
|
a31f53395f | ||
|
|
283b134d84 | ||
|
|
271eb614cd | ||
|
|
16167bef07 | ||
|
|
1eac9fa1cd | ||
|
|
7f819f0020 | ||
|
|
dec1f99a5f | ||
|
|
c705e74fc8 | ||
|
|
01df10f93e | ||
|
|
9877f08cf4 | ||
|
|
3dc4b1d775 | ||
|
|
02791c51ae | ||
|
|
49683326e6 | ||
|
|
947773a82e | ||
|
|
2a229df624 | ||
|
|
e605ad5e46 | ||
|
|
0d4f43472b | ||
|
|
b30e467685 | ||
|
|
a56c0b52d5 | ||
|
|
c17ebfd279 | ||
|
|
5400b1da96 | ||
|
|
69f4a618b2 | ||
|
|
16b8b6698c | ||
|
|
b29a700d40 | ||
|
|
bbb1468439 | ||
|
|
72f9d6a8d3 | ||
|
|
3ec8da1f17 | ||
|
|
dbea3848df | ||
|
|
33871435e1 | ||
|
|
f1f22b43dc | ||
|
|
2fb9a56e0b | ||
|
|
14e8f66ed7 | ||
|
|
e6f5072462 | ||
|
|
a64f50fa72 | ||
|
|
bb5f6e88d0 | ||
|
|
6991403203 | ||
|
|
410bd22f8a | ||
|
|
b81d823602 | ||
|
|
bd5115f9aa | ||
|
|
7bcbed80d7 | ||
|
|
8fb62ebf5f | ||
|
|
209dd9923f | ||
|
|
c75207e391 | ||
|
|
d957f36927 | ||
|
|
9ac459b6d9 | ||
|
|
e08b2817ba | ||
|
|
4ca13c409b | ||
|
|
0d515e2303 | ||
|
|
a2153bc6aa | ||
|
|
ca171afe6f | ||
|
|
bf4e97bd48 | ||
|
|
8c59a12a03 | ||
|
|
89569355be | ||
|
|
3a41b3bdcf | ||
|
|
12bd7037b3 | ||
|
|
ca4f573be0 | ||
|
|
07fceeab5a | ||
|
|
3aa376e912 | ||
|
|
92d30a8896 | ||
|
|
83876fb9da | ||
|
|
29bdf7877c | ||
|
|
29199e2782 | ||
|
|
68e1378615 | ||
|
|
cf7efb5bfc | ||
|
|
8634ee536d | ||
|
|
632d3cda24 | ||
|
|
29b6a907d4 | ||
|
|
7474d09e5d | ||
|
|
fc7bcd7e00 | ||
|
|
f6fb2e4b1d | ||
|
|
8c8673a272 | ||
|
|
4404a1173b | ||
|
|
e08c10315e | ||
|
|
16473c9177 | ||
|
|
235fd5603f | ||
|
|
d07d5832f5 | ||
|
|
ef8be5d559 | ||
|
|
ccafdc6e1f | ||
|
|
11827aa4c0 | ||
|
|
6b0589d343 | ||
|
|
cec1eed99e | ||
|
|
d7e1e9e284 | ||
|
|
cae46453a7 | ||
|
|
a6e948c808 | ||
|
|
7638020bfc | ||
|
|
10a62ca17c | ||
|
|
0afc7c184f | ||
|
|
168e26aeb4 | ||
|
|
e6b9389b33 | ||
|
|
377c37425e | ||
|
|
4af26602bb | ||
|
|
c6624e5cb6 | ||
|
|
f7ae5b91bf | ||
|
|
07e68496c0 | ||
|
|
d5a947e2cc | ||
|
|
3f920767f1 | ||
|
|
3e14d27a1e | ||
|
|
cfa4c14108 | ||
|
|
209056dbe1 | ||
|
|
10356a7496 | ||
|
|
d4ae74de44 | ||
|
|
88d5e7dd5e | ||
|
|
06c7b0b82e | ||
|
|
689febda60 | ||
|
|
80bc6fda8b | ||
|
|
346eb78c4e | ||
|
|
2df02f1b09 | ||
|
|
92915eddc2 | ||
|
|
cddbf460f8 | ||
|
|
3c63c23e5a | ||
|
|
ba67b1291f | ||
|
|
7bced28327 | ||
|
|
db2b60700c | ||
|
|
9034822c44 | ||
|
|
e8254f9aae | ||
|
|
a14179b81a | ||
|
|
427c5db7f4 | ||
|
|
fcb5865468 | ||
|
|
41370be2b8 | ||
|
|
d7d8dd8986 | ||
|
|
a0f596e419 | ||
|
|
0a8894feb7 | ||
|
|
1db9eea0f8 | ||
|
|
489783c398 | ||
|
|
be62f327ee | ||
|
|
32359adb6d | ||
|
|
2e198af8c3 | ||
|
|
d154fcbd71 | ||
|
|
21e277b8a2 | ||
|
|
f98cdd0749 | ||
|
|
e60e306426 | ||
|
|
ec36d396d9 | ||
|
|
135232d880 | ||
|
|
9c42ca0315 | ||
|
|
9ad9c569a6 | ||
|
|
a9071d7920 | ||
|
|
1b4a10fac1 | ||
|
|
d340f3b383 | ||
|
|
f8c5eeab5d | ||
|
|
9cd2d0df93 | ||
|
|
78914091b1 | ||
|
|
e12c324613 | ||
|
|
7cf396b518 | ||
|
|
8b3b40e627 | ||
|
|
90e14762e3 | ||
|
|
d1dd8231cd | ||
|
|
e70a3e09bf | ||
|
|
98656b0044 | ||
|
|
a48aa3c778 | ||
|
|
05d7b98ba0 | ||
|
|
f291ea6647 | ||
|
|
5d6e332044 | ||
|
|
acb471fbe5 | ||
|
|
894f4379e6 | ||
|
|
1c73007ae6 | ||
|
|
2f7d744228 | ||
|
|
e2cba90f8d | ||
|
|
352214ba0a | ||
|
|
bd9b72fb22 | ||
|
|
50c9a667b3 | ||
|
|
3d32e6310d | ||
|
|
3bc54aa9e0 | ||
|
|
def1ec3518 | ||
|
|
077802f972 | ||
|
|
914b47f340 | ||
|
|
b2a78fd063 | ||
|
|
7d1835e59c | ||
|
|
833ccf3637 | ||
|
|
51be916f39 | ||
|
|
e375408777 | ||
|
|
5078dc1cbf | ||
|
|
875148366e | ||
|
|
c9ec4b4e24 | ||
|
|
efa2b2db27 | ||
|
|
8ce120b74d | ||
|
|
26e678a97d | ||
|
|
e71dd7409e | ||
|
|
58ffc2c6ca | ||
|
|
d3f29362b9 | ||
|
|
b429fe8254 | ||
|
|
e1cb549b28 | ||
|
|
65a22257cc | ||
|
|
e2f753eaa7 | ||
|
|
c7127b65bf | ||
|
|
0c58c3572a | ||
|
|
26ae5fd728 | ||
|
|
370d92213b | ||
|
|
6e8321a22a | ||
|
|
a8e8c1ce5d | ||
|
|
a8a8cafd2b | ||
|
|
b609890f28 | ||
|
|
aac09ae092 | ||
|
|
f1ff872944 | ||
|
|
b195d2980a | ||
|
|
d11736181f | ||
|
|
3e84486dd5 | ||
|
|
a674ce36e4 | ||
|
|
f6569a2625 | ||
|
|
da10da79b3 | ||
|
|
f236b76d5c | ||
|
|
a71c22bedd | ||
|
|
cc528e41cf | ||
|
|
351962475f | ||
|
|
6c73392a57 | ||
|
|
072ad87831 | ||
|
|
370a1f0574 | ||
|
|
9ca7aca4b7 | ||
|
|
0f2e9f66b1 | ||
|
|
d03c3ab713 | ||
|
|
57c0b34ae9 | ||
|
|
06a94f0f28 | ||
|
|
750e7b1262 | ||
|
|
19e32752bb | ||
|
|
89c0729964 | ||
|
|
fd07152aea | ||
|
|
b656f189b6 | ||
|
|
9ac8d70152 | ||
|
|
8cc0b46335 | ||
|
|
1f15094da7 | ||
|
|
b881adb853 | ||
|
|
4bfc3a5629 | ||
|
|
ae6c0bfe40 | ||
|
|
4ce9c71521 | ||
|
|
ec48323a7d | ||
|
|
7d9bae16cd | ||
|
|
163ff3d4e4 | ||
|
|
43fbf97e10 | ||
|
|
71faaf2ab1 | ||
|
|
7b0e743eca | ||
|
|
31a0c53855 | ||
|
|
e8996063dd | ||
|
|
00842a3354 | ||
|
|
d33f18ecb7 | ||
|
|
fb7f620316 | ||
|
|
712e0d3e3b | ||
|
|
1870dc29c0 | ||
|
|
da6fdc74d8 | ||
|
|
515e39154a | ||
|
|
ff7731d063 | ||
|
|
e9a3666dd5 | ||
|
|
55c56d53f4 | ||
|
|
e4d55e6842 | ||
|
|
d8661cf2db | ||
|
|
8815b126b5 | ||
|
|
2cd367f29f | ||
|
|
7395d19489 | ||
|
|
d55cb95479 | ||
|
|
68ece7d363 | ||
|
|
6e4a8ac6df | ||
|
|
790629849f | ||
|
|
f0443a43b2 | ||
|
|
3041eb5ce0 | ||
|
|
c69247f190 | ||
|
|
27d6a62e67 | ||
|
|
6e7fc914aa | ||
|
|
65d587843b | ||
|
|
c54792af22 | ||
|
|
7b7e023103 | ||
|
|
7637d36146 | ||
|
|
6c62afb123 | ||
|
|
44210ce6f2 | ||
|
|
e21efc0a5c | ||
|
|
09a965022f | ||
|
|
7534ecd2f2 | ||
|
|
46bf5cf830 | ||
|
|
7ba7761a57 | ||
|
|
5268afabdb | ||
|
|
3ea7506003 | ||
|
|
ee14d206c8 | ||
|
|
b65f4b9af6 | ||
|
|
6d000a3f9a | ||
|
|
9ba0de67f5 | ||
|
|
d22eaa1318 | ||
|
|
3f4bfab7fe | ||
|
|
9292f217c5 | ||
|
|
3b779bf423 | ||
|
|
ea410d3af1 | ||
|
|
4e71c2c500 | ||
|
|
454ddf366a | ||
|
|
d0ba5696d1 | ||
|
|
c53fd0d1e1 | ||
|
|
7bbecfde2b | ||
|
|
a06f378582 | ||
|
|
b3b42b741d | ||
|
|
020f115d7c | ||
|
|
2cc9d70915 | ||
|
|
b242c6651a | ||
|
|
14a51799a6 | ||
|
|
79a6dacd2f | ||
|
|
6891f1df1c | ||
|
|
497494620d | ||
|
|
7a13242077 | ||
|
|
b9d6973a79 | ||
|
|
ed0e8c5e8d | ||
|
|
d8f530f8ac | ||
|
|
a46874b7ff | ||
|
|
cf68f25a03 | ||
|
|
a496563b5c | ||
|
|
a763ad5bf1 | ||
|
|
f0b0200932 | ||
|
|
342f22e6a1 | ||
|
|
372ecc6557 | ||
|
|
16c604937e | ||
|
|
5cbffb23fd | ||
|
|
6de38d3b85 | ||
|
|
b34ce577d9 | ||
|
|
4b9fcd7de7 | ||
|
|
cc71ccaafa | ||
|
|
9ff2eece3a | ||
|
|
2bc97cc9c8 | ||
|
|
a87570cf5a | ||
|
|
9ffd25e3a0 | ||
|
|
61fdab294a | ||
|
|
d4e137bb58 | ||
|
|
c251e4f241 | ||
|
|
a55d0f347b | ||
|
|
f15cc0b424 | ||
|
|
4e17875011 | ||
|
|
256b64b6b3 | ||
|
|
8c0c0592e2 | ||
|
|
f53f81dbc4 | ||
|
|
d6c85719c9 | ||
|
|
c51c80bf47 | ||
|
|
544832756d | ||
|
|
ca8586789a | ||
|
|
1afc2b3518 | ||
|
|
17352ea5bd | ||
|
|
6f5e3c2711 | ||
|
|
bee21cd3fe | ||
|
|
c4340e05d2 | ||
|
|
6d6eef4e97 | ||
|
|
71137032df | ||
|
|
ffff4dc03d | ||
|
|
4033131f2e | ||
|
|
65b16c763e | ||
|
|
33af3de4a3 | ||
|
|
a822c1eb2f | ||
|
|
4eb46bc275 | ||
|
|
ccc9b73f9b | ||
|
|
e9ffdeff19 | ||
|
|
a0ab4dffc9 | ||
|
|
f5f8ad0e02 | ||
|
|
82957ff6ef | ||
|
|
0864aeb9c6 | ||
|
|
cda6310373 | ||
|
|
26a87e9280 | ||
|
|
0b16a4880a | ||
|
|
db68c5852c | ||
|
|
256aec5308 | ||
|
|
20dd3ca21c | ||
|
|
25cc76e022 | ||
|
|
168cc607aa | ||
|
|
edc4601f8e | ||
|
|
8f86a7ad8c | ||
|
|
4d7ad0dc51 | ||
|
|
34ac80567e | ||
|
|
23bdc03f29 | ||
|
|
3099748a6d | ||
|
|
e384f76ac1 | ||
|
|
7050d19be7 | ||
|
|
ca678330d3 | ||
|
|
10a5b3f9c3 | ||
|
|
0fcedc5046 | ||
|
|
f558f7fb8c | ||
|
|
06207defe7 | ||
|
|
986f9d7633 | ||
|
|
81277fd12e | ||
|
|
30442b25c0 | ||
|
|
67ac3b4ba3 | ||
|
|
f819e2cf8d | ||
|
|
a376f4525b | ||
|
|
5c1553286a | ||
|
|
2c5d3f7492 | ||
|
|
58f01ba11a | ||
|
|
3fdf9a2e28 | ||
|
|
4cbd8e7673 | ||
|
|
20ca642e51 | ||
|
|
05ad7ea011 | ||
|
|
faea8c9f4c | ||
|
|
0d4c51f26e | ||
|
|
2c1b25b00b | ||
|
|
407f305d21 | ||
|
|
5d5d6b247f | ||
|
|
77bd7c37c1 | ||
|
|
783ea0f5c8 | ||
|
|
33f1b45f30 | ||
|
|
e1df50ad3b | ||
|
|
6a9a4cf65f | ||
|
|
443634ecf0 | ||
|
|
2a17870d6d | ||
|
|
486ed7dcaa | ||
|
|
19c13096dc | ||
|
|
49b4271a47 | ||
|
|
404d0b8d05 | ||
|
|
fe63c12cd9 | ||
|
|
44023c3db7 | ||
|
|
6242997849 | ||
|
|
ec5d7508c9 | ||
|
|
7461d8f806 | ||
|
|
362236d7df | ||
|
|
ba384b9eee | ||
|
|
d94df728e5 | ||
|
|
d0a53d1760 | ||
|
|
2e5ec1f0c1 | ||
|
|
6c8aedfb8b | ||
|
|
f354e1eb0f | ||
|
|
49b1e5897e | ||
|
|
1a58c17180 | ||
|
|
7fb852893c | ||
|
|
aa9a354746 | ||
|
|
78f5429c92 | ||
|
|
79de8e0f32 | ||
|
|
70f59eeec6 | ||
|
|
b75792a3bf | ||
|
|
5cb7117656 | ||
|
|
3a5bd7474b | ||
|
|
304fad3f49 | ||
|
|
fb929a089c | ||
|
|
6076a0cdc4 | ||
|
|
a3736683eb | ||
|
|
413f1c31bb | ||
|
|
20baff380b | ||
|
|
582d159884 | ||
|
|
9c43c5806d | ||
|
|
8ad2bf5401 | ||
|
|
66409f0fa5 | ||
|
|
68172e006f | ||
|
|
cf5e808a96 | ||
|
|
3faebaeb4b | ||
|
|
6b8cfe661c | ||
|
|
2fd64af737 | ||
|
|
050cdf3783 | ||
|
|
d73b3d77ea | ||
|
|
acc024bcf9 | ||
|
|
deb179ad38 | ||
|
|
bfb11790a2 | ||
|
|
af23110074 | ||
|
|
b8e71609db | ||
|
|
1876b3827f | ||
|
|
38d3b8d087 | ||
|
|
c5ef33cc78 | ||
|
|
7427b209a7 | ||
|
|
71397e5199 | ||
|
|
1bc3b3befc | ||
|
|
872e46a076 | ||
|
|
ad386c0e22 | ||
|
|
7e281f66c2 | ||
|
|
7daafcbe1b | ||
|
|
c5b223988a | ||
|
|
6cc9ce573b | ||
|
|
23192226dd | ||
|
|
736444201b | ||
|
|
785f49b005 | ||
|
|
55dd1f4aa1 | ||
|
|
6d0490d7d9 | ||
|
|
06667455ae | ||
|
|
3640960486 | ||
|
|
4ad3dbf3e2 | ||
|
|
10957deb1f | ||
|
|
0a128db269 | ||
|
|
6bb3b84377 | ||
|
|
b8d2c551e0 | ||
|
|
34e06351fb | ||
|
|
e179404a9e | ||
|
|
9c574995ac | ||
|
|
3f35c603d2 | ||
|
|
8e0688140e | ||
|
|
5f81a204f2 | ||
|
|
df3b70a533 | ||
|
|
0c57c05a22 | ||
|
|
c6be3be45a | ||
|
|
9689db9605 | ||
|
|
e4607735ff | ||
|
|
389b7def0b | ||
|
|
e35bd30ed3 | ||
|
|
4b8f7e1fe9 | ||
|
|
5cc4e2bb16 | ||
|
|
e165a96689 | ||
|
|
91a655a81e | ||
|
|
612811e2c2 | ||
|
|
11bd72915c | ||
|
|
339221e793 | ||
|
|
9be864b45e | ||
|
|
3a453f5843 | ||
|
|
28e0384b55 | ||
|
|
dcd6c6f06f | ||
|
|
28d26065e4 | ||
|
|
300c8d06c4 | ||
|
|
d2a1d11d16 | ||
|
|
6ae717bbfe | ||
|
|
21296b4224 | ||
|
|
fafad302ba | ||
|
|
0c94ad46b2 | ||
|
|
d9bb40f934 | ||
|
|
bbc16b6bc8 | ||
|
|
16154e9d8b | ||
|
|
61bd536d7b | ||
|
|
02c798a8bc | ||
|
|
c37a691b9b | ||
|
|
23c68d17e8 | ||
|
|
0a7f610ad3 | ||
|
|
c9e8bd2e5d | ||
|
|
a66d2ca1b9 | ||
|
|
d38a0f0366 | ||
|
|
29759de021 | ||
|
|
264759ddf0 | ||
|
|
91b0bd5b5e | ||
|
|
a0e2cc7a3a | ||
|
|
9e1eb41cbe | ||
|
|
c37eb023b0 | ||
|
|
840948ba4a | ||
|
|
8fbdd88b24 | ||
|
|
512d35d2e0 | ||
|
|
0321e55a42 | ||
|
|
a1ee9ad48b | ||
|
|
1ad1fd28f1 | ||
|
|
007f8b50b9 | ||
|
|
6fe8a87cca | ||
|
|
5f46679d94 | ||
|
|
18a3f212f3 | ||
|
|
67a3f5d87b | ||
|
|
c88439ba2f | ||
|
|
67e17d4016 | ||
|
|
b61cf60faf | ||
|
|
5503853445 | ||
|
|
259726f5be | ||
|
|
bec42d941b | ||
|
|
dcbbaf08f9 | ||
|
|
349355584a | ||
|
|
7ce0b34774 | ||
|
|
dd894758a4 | ||
|
|
2aa1eb97fd | ||
|
|
4c43ae7b2f | ||
|
|
34e516e0be | ||
|
|
7bd3427e76 | ||
|
|
6853db693a | ||
|
|
252ce1e467 | ||
|
|
221c12bd61 | ||
|
|
12edd68874 | ||
|
|
f469753fb1 | ||
|
|
c894ecd0e6 | ||
|
|
2153bc536c | ||
|
|
86bbac430c | ||
|
|
16ad8a3c01 | ||
|
|
b2af91c83e | ||
|
|
4c0810f530 | ||
|
|
f70130e21f | ||
|
|
6bb7b01d00 | ||
|
|
51e7aaa805 | ||
|
|
54704e53b3 | ||
|
|
cc46797576 | ||
|
|
7f1fb6f75f | ||
|
|
2c2a1d204b | ||
|
|
581fafdcc9 | ||
|
|
10358abbec | ||
|
|
de1ffe67b1 | ||
|
|
eb2b24d57c | ||
|
|
825db8a56a | ||
|
|
577a21fc5c | ||
|
|
1b2841eef9 | ||
|
|
845511e322 | ||
|
|
96ab057853 | ||
|
|
f85cf0a238 | ||
|
|
84a2676a9c | ||
|
|
466a1af902 | ||
|
|
ebbe7e805f | ||
|
|
c861ee025e | ||
|
|
6d0823328d | ||
|
|
60be14dc77 | ||
|
|
2d627819d9 | ||
|
|
cf575f83f5 | ||
|
|
79935b2d4c | ||
|
|
d1cceb2013 | ||
|
|
f5da130d51 | ||
|
|
8768304ec5 | ||
|
|
f10a5dcdbe | ||
|
|
a27428ebcd | ||
|
|
d19acf17c2 | ||
|
|
1a0bf861ee | ||
|
|
db906ad4d0 | ||
|
|
75ed0f2f99 | ||
|
|
29ed1144d5 | ||
|
|
fa445d4066 | ||
|
|
d10be4ef2d | ||
|
|
7f66d5b8e9 | ||
|
|
0c8cd680c2 | ||
|
|
a7ba1977b4 | ||
|
|
a960b39235 | ||
|
|
3febf059ec | ||
|
|
20203f7bdb | ||
|
|
a399d76d06 | ||
|
|
1ca097c5a0 | ||
|
|
e83ede245d | ||
|
|
05ac275780 | ||
|
|
966c0bc06c | ||
|
|
abf136dd63 | ||
|
|
b6309cfd16 | ||
|
|
b69d5e0fa3 | ||
|
|
5084cde6b9 | ||
|
|
ca1cc7ed0d | ||
|
|
808a31db2b | ||
|
|
44ad75aead | ||
|
|
0961c9d05e | ||
|
|
56754b4d43 | ||
|
|
661779ad4e | ||
|
|
cf37ebb652 | ||
|
|
82741e490b | ||
|
|
5fed28808e | ||
|
|
321c0cfc84 | ||
|
|
eba7cedaa6 | ||
|
|
71492d0467 | ||
|
|
9630a58ea7 | ||
|
|
89f6f16ba2 | ||
|
|
2d646da97f | ||
|
|
39b5460598 | ||
|
|
636429ccfa | ||
|
|
e5abb95f5c | ||
|
|
c631554eb0 | ||
|
|
db07eeb916 | ||
|
|
3216a46e76 | ||
|
|
ae6243b7bf | ||
|
|
df002d7a67 | ||
|
|
e8a0632108 | ||
|
|
0a92c28bac | ||
|
|
d419547463 | ||
|
|
da392912b3 | ||
|
|
9ebee02727 | ||
|
|
0bdcfcc42f | ||
|
|
43623a30bc | ||
|
|
99e73054a9 | ||
|
|
108233f3b8 | ||
|
|
8f2a7c95b3 | ||
|
|
7fdd525dac | ||
|
|
7ed24137eb | ||
|
|
07cd30eaca | ||
|
|
df8cf66e02 | ||
|
|
bc68e20041 | ||
|
|
786da25b9f | ||
|
|
c3832d56c3 | ||
|
|
79d1a2f458 | ||
|
|
f16a674a39 | ||
|
|
6e38a80efc | ||
|
|
6a3a1297ad | ||
|
|
5ca63a8052 | ||
|
|
8b04df093c | ||
|
|
d2a5494335 | ||
|
|
de545e90e2 | ||
|
|
57ab7e829b | ||
|
|
6847830575 | ||
|
|
2084ecc4c6 | ||
|
|
b0c27e587e | ||
|
|
1687d90d02 | ||
|
|
dfd9bf3c64 | ||
|
|
5a25b9c2f1 | ||
|
|
bf68101754 | ||
|
|
487bd8d3fc | ||
|
|
3ba9c931b9 | ||
|
|
8484f7595a | ||
|
|
ee889d59d4 | ||
|
|
ae10330844 | ||
|
|
f3e88f6f2e | ||
|
|
2abfd0392d | ||
|
|
462c1f94d6 | ||
|
|
f4710891d0 | ||
|
|
1fdb6b8034 | ||
|
|
8029c3d672 | ||
|
|
b04fe141ac | ||
|
|
b0168fbb85 | ||
|
|
75ba343b5e | ||
|
|
88217473f7 | ||
|
|
01e5dfc9b3 |
13
.devcontainer/Dockerfile
Normal file
13
.devcontainer/Dockerfile
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.148.1/containers/python-3/.devcontainer/base.Dockerfile
|
||||||
|
FROM mcr.microsoft.com/vscode/devcontainers/python:0-3.9
|
||||||
|
|
||||||
|
ENV \
|
||||||
|
DEBIAN_FRONTEND=noninteractive \
|
||||||
|
DEVCONTAINER=true \
|
||||||
|
PATH=$PATH:./node_modules/.bin
|
||||||
|
|
||||||
|
# Install nvm
|
||||||
|
COPY .nvmrc /tmp/.nvmrc
|
||||||
|
RUN \
|
||||||
|
su vscode -c \
|
||||||
|
"source /usr/local/share/nvm/nvm.sh && nvm install $(cat /tmp/.nvmrc) 2>&1"
|
||||||
31
.devcontainer/devcontainer.json
Normal file
31
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"name": "Home Assistant Frontend",
|
||||||
|
"build": {
|
||||||
|
"dockerfile": "Dockerfile",
|
||||||
|
"context": ".."
|
||||||
|
},
|
||||||
|
"appPort": 8123,
|
||||||
|
"context": "..",
|
||||||
|
"postCreateCommand": "script/bootstrap",
|
||||||
|
"extensions": [
|
||||||
|
"github.vscode-pull-request-github",
|
||||||
|
"dbaeumer.vscode-eslint",
|
||||||
|
"ms-vscode.vscode-typescript-tslint-plugin",
|
||||||
|
"esbenp.prettier-vscode",
|
||||||
|
"bierner.lit-html",
|
||||||
|
"runem.lit-plugin",
|
||||||
|
"ms-python.vscode-pylance"
|
||||||
|
],
|
||||||
|
"settings": {
|
||||||
|
"terminal.integrated.shell.linux": "/bin/bash",
|
||||||
|
"files.eol": "\n",
|
||||||
|
"editor.tabSize": 2,
|
||||||
|
"editor.formatOnPaste": false,
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"editor.formatOnType": true,
|
||||||
|
"[typescript]": {
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||||
|
},
|
||||||
|
"files.trimTrailingWhitespace": true
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
node_modules
|
|
||||||
hass_frontend
|
|
||||||
hass_frontend_es5
|
|
||||||
.git
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"extends": [
|
"extends": [
|
||||||
"plugin:@typescript-eslint/recommended",
|
|
||||||
"airbnb-typescript/base",
|
"airbnb-typescript/base",
|
||||||
|
"plugin:@typescript-eslint/recommended",
|
||||||
"plugin:wc/recommended",
|
"plugin:wc/recommended",
|
||||||
"plugin:lit/recommended",
|
"plugin:lit/recommended",
|
||||||
"prettier",
|
"prettier",
|
||||||
@@ -11,17 +11,12 @@
|
|||||||
"parserOptions": {
|
"parserOptions": {
|
||||||
"ecmaVersion": 2020,
|
"ecmaVersion": 2020,
|
||||||
"ecmaFeatures": {
|
"ecmaFeatures": {
|
||||||
"jsx": true,
|
|
||||||
"modules": true
|
"modules": true
|
||||||
},
|
},
|
||||||
"sourceType": "module",
|
"sourceType": "module",
|
||||||
"project": "./tsconfig.json"
|
"project": "./tsconfig.json"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"react": {
|
|
||||||
"pragma": "h",
|
|
||||||
"version": "15.0"
|
|
||||||
},
|
|
||||||
"import/resolver": {
|
"import/resolver": {
|
||||||
"webpack": {
|
"webpack": {
|
||||||
"config": "./webpack.config.js"
|
"config": "./webpack.config.js"
|
||||||
@@ -50,16 +45,16 @@
|
|||||||
"func-names": 0,
|
"func-names": 0,
|
||||||
"prefer-arrow-callback": 0,
|
"prefer-arrow-callback": 0,
|
||||||
"no-underscore-dangle": 0,
|
"no-underscore-dangle": 0,
|
||||||
"no-var": 0,
|
|
||||||
"strict": 0,
|
"strict": 0,
|
||||||
"prefer-spread": 0,
|
"prefer-spread": 0,
|
||||||
"no-plusplus": 0,
|
"no-plusplus": 0,
|
||||||
"no-bitwise": 0,
|
"no-bitwise": 2,
|
||||||
"comma-dangle": 0,
|
"comma-dangle": 0,
|
||||||
"vars-on-top": 0,
|
"vars-on-top": 0,
|
||||||
"no-continue": 0,
|
"no-continue": 0,
|
||||||
"no-param-reassign": 0,
|
"no-param-reassign": 0,
|
||||||
"no-multi-assign": 0,
|
"no-multi-assign": 0,
|
||||||
|
"no-console": 2,
|
||||||
"radix": 0,
|
"radix": 0,
|
||||||
"no-alert": 0,
|
"no-alert": 0,
|
||||||
"no-return-await": 0,
|
"no-return-await": 0,
|
||||||
@@ -80,21 +75,17 @@
|
|||||||
"object-curly-newline": 0,
|
"object-curly-newline": 0,
|
||||||
"default-case": 0,
|
"default-case": 0,
|
||||||
"wc/no-self-class": 0,
|
"wc/no-self-class": 0,
|
||||||
|
"no-shadow": 0,
|
||||||
"@typescript-eslint/camelcase": 0,
|
"@typescript-eslint/camelcase": 0,
|
||||||
"@typescript-eslint/ban-ts-ignore": 0,
|
"@typescript-eslint/ban-ts-comment": 0,
|
||||||
"@typescript-eslint/no-use-before-define": 0,
|
"@typescript-eslint/no-use-before-define": 0,
|
||||||
"@typescript-eslint/no-non-null-assertion": 0,
|
"@typescript-eslint/no-non-null-assertion": 0,
|
||||||
"@typescript-eslint/no-explicit-any": 0,
|
"@typescript-eslint/no-explicit-any": 0,
|
||||||
"@typescript-eslint/no-unused-vars": 0,
|
"@typescript-eslint/no-unused-vars": 0,
|
||||||
"@typescript-eslint/explicit-function-return-type": 0
|
"@typescript-eslint/explicit-function-return-type": 0,
|
||||||
|
"@typescript-eslint/explicit-module-boundary-types": 0,
|
||||||
|
"@typescript-eslint/no-shadow": ["error"]
|
||||||
},
|
},
|
||||||
"plugins": [
|
"plugins": ["disable", "import", "lit", "prettier", "@typescript-eslint"],
|
||||||
"disable",
|
|
||||||
"import",
|
|
||||||
"react",
|
|
||||||
"lit",
|
|
||||||
"prettier",
|
|
||||||
"@typescript-eslint"
|
|
||||||
],
|
|
||||||
"processor": "disable/disable"
|
"processor": "disable/disable"
|
||||||
}
|
}
|
||||||
|
|||||||
14
.github/ISSUE_TEMPLATE/BUG_REPORT.md
vendored
14
.github/ISSUE_TEMPLATE/BUG_REPORT.md
vendored
@@ -51,7 +51,7 @@ DO NOT DELETE ANY TEXT from this template! Otherwise, your issue may be closed w
|
|||||||
<!--
|
<!--
|
||||||
Provide details about the versions you are using, which helps us reproducing
|
Provide details about the versions you are using, which helps us reproducing
|
||||||
and finding the issue quicker. Version information is found in the
|
and finding the issue quicker. Version information is found in the
|
||||||
Home Assistant frontend: Developer tools -> Info.
|
Home Assistant frontend: Configuration -> Info.
|
||||||
|
|
||||||
Browser version and operating system is important! Please try to replicate
|
Browser version and operating system is important! Please try to replicate
|
||||||
your issue in a different browser and be sure to include your findings.
|
your issue in a different browser and be sure to include your findings.
|
||||||
@@ -62,6 +62,18 @@ DO NOT DELETE ANY TEXT from this template! Otherwise, your issue may be closed w
|
|||||||
- Browser and browser version:
|
- Browser and browser version:
|
||||||
- Operating system:
|
- Operating system:
|
||||||
|
|
||||||
|
## State of relevant entities
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If your issue is about how an entity is shown in the UI, please add the state
|
||||||
|
and attributes for all situations with a screenshot of the UI.
|
||||||
|
You can find this information at `/developer-tools/state`
|
||||||
|
-->
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
## Problem-relevant configuration
|
## Problem-relevant configuration
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|||||||
26
.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md
vendored
26
.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md
vendored
@@ -1,26 +0,0 @@
|
|||||||
---
|
|
||||||
name: Request a feature for the UI, Frontend or Lovelace
|
|
||||||
about: Request an new feature for the Home Assistant frontend.
|
|
||||||
labels: feature request
|
|
||||||
---
|
|
||||||
|
|
||||||
<!--
|
|
||||||
DO NOT DELETE ANY TEXT from this template!
|
|
||||||
Otherwise, your request may be closed without comment.
|
|
||||||
-->
|
|
||||||
|
|
||||||
## The request
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Describe to our maintainers, the feature you would like to be added.
|
|
||||||
Please be clear and concise and, if possible, provide a screenshot or mockup.
|
|
||||||
-->
|
|
||||||
|
|
||||||
## The alternatives
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Are you currently using, or have you considered alternatives?
|
|
||||||
If so, could you please describe those?
|
|
||||||
-->
|
|
||||||
|
|
||||||
## Additional information
|
|
||||||
3
.github/ISSUE_TEMPLATE/config.yml
vendored
3
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,5 +1,8 @@
|
|||||||
blank_issues_enabled: false
|
blank_issues_enabled: false
|
||||||
contact_links:
|
contact_links:
|
||||||
|
- name: Request a feature for the UI, Frontend or Lovelace
|
||||||
|
url: https://github.com/home-assistant/frontend/discussions/category_choices
|
||||||
|
about: Request an new feature for the Home Assistant frontend.
|
||||||
- name: Report a bug that is NOT related to the UI, Frontend or Lovelace
|
- name: Report a bug that is NOT related to the UI, Frontend or Lovelace
|
||||||
url: https://github.com/home-assistant/core/issues
|
url: https://github.com/home-assistant/core/issues
|
||||||
about: This is the issue tracker for our frontend. Please report other issues with the backend repository.
|
about: This is the issue tracker for our frontend. Please report other issues with the backend repository.
|
||||||
|
|||||||
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -18,8 +18,8 @@
|
|||||||
<!--
|
<!--
|
||||||
Describe the big picture of your changes here to communicate to the
|
Describe the big picture of your changes here to communicate to the
|
||||||
maintainers why we should accept this pull request. If it fixes a bug
|
maintainers why we should accept this pull request. If it fixes a bug
|
||||||
or resolves a feature request, be sure to link to that issue in the
|
or resolves a feature request, be sure to link to that issue or discussion
|
||||||
additional information section.
|
in the additional information section.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
## Type of change
|
## Type of change
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
- This PR fixes or closes issue: fixes #
|
- This PR fixes or closes issue: fixes #
|
||||||
- This PR is related to issue:
|
- This PR is related to issue or discussion:
|
||||||
- Link to documentation pull request:
|
- Link to documentation pull request:
|
||||||
|
|
||||||
## Checklist
|
## Checklist
|
||||||
|
|||||||
27
.github/lock.yml
vendored
27
.github/lock.yml
vendored
@@ -1,27 +0,0 @@
|
|||||||
# Configuration for Lock Threads - https://github.com/dessant/lock-threads
|
|
||||||
|
|
||||||
# Number of days of inactivity before a closed issue or pull request is locked
|
|
||||||
daysUntilLock: 1
|
|
||||||
|
|
||||||
# Skip issues and pull requests created before a given timestamp. Timestamp must
|
|
||||||
# follow ISO 8601 (`YYYY-MM-DD`). Set to `false` to disable
|
|
||||||
skipCreatedBefore: 2020-01-01
|
|
||||||
|
|
||||||
# Issues and pull requests with these labels will be ignored. Set to `[]` to disable
|
|
||||||
exemptLabels: []
|
|
||||||
|
|
||||||
# Label to add before locking, such as `outdated`. Set to `false` to disable
|
|
||||||
lockLabel: false
|
|
||||||
|
|
||||||
# Comment to post before locking. Set to `false` to disable
|
|
||||||
lockComment: false
|
|
||||||
|
|
||||||
# Assign `resolved` as the reason for locking. Set to `false` to disable
|
|
||||||
setLockReason: false
|
|
||||||
|
|
||||||
# Limit to only `issues` or `pulls`
|
|
||||||
only: pulls
|
|
||||||
|
|
||||||
# Optionally, specify configuration settings just for `issues` or `pulls`
|
|
||||||
issues:
|
|
||||||
daysUntilLock: 30
|
|
||||||
56
.github/stale.yml
vendored
56
.github/stale.yml
vendored
@@ -1,56 +0,0 @@
|
|||||||
# Configuration for probot-stale - https://github.com/probot/stale
|
|
||||||
|
|
||||||
# Number of days of inactivity before an Issue or Pull Request becomes stale
|
|
||||||
daysUntilStale: 90
|
|
||||||
|
|
||||||
# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
|
|
||||||
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
|
|
||||||
daysUntilClose: 7
|
|
||||||
|
|
||||||
# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
|
|
||||||
onlyLabels: []
|
|
||||||
|
|
||||||
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
|
|
||||||
exemptLabels:
|
|
||||||
- feature request
|
|
||||||
- Help wanted
|
|
||||||
- to do
|
|
||||||
|
|
||||||
# Set to true to ignore issues in a project (defaults to false)
|
|
||||||
exemptProjects: true
|
|
||||||
|
|
||||||
# Set to true to ignore issues in a milestone (defaults to false)
|
|
||||||
exemptMilestones: true
|
|
||||||
|
|
||||||
# Set to true to ignore issues with an assignee (defaults to false)
|
|
||||||
exemptAssignees: false
|
|
||||||
|
|
||||||
# Label to use when marking as stale
|
|
||||||
staleLabel: stale
|
|
||||||
|
|
||||||
# Comment to post when marking as stale. Set to `false` to disable
|
|
||||||
markComment: >
|
|
||||||
There hasn't been any activity on this issue recently. Due to the high number
|
|
||||||
of incoming GitHub notifications, we have to clean some of the old issues,
|
|
||||||
as many of them have already been resolved with the latest updates.
|
|
||||||
|
|
||||||
Please make sure to update to the latest Home Assistant version and check
|
|
||||||
if that solves the issue. Let us know if that works for you by adding a
|
|
||||||
comment 👍
|
|
||||||
|
|
||||||
This issue now has been marked as stale and will be closed if no further
|
|
||||||
activity occurs. Thank you for your contributions.
|
|
||||||
|
|
||||||
# Comment to post when removing the stale label.
|
|
||||||
# unmarkComment: >
|
|
||||||
# Your comment here.
|
|
||||||
|
|
||||||
# Comment to post when closing a stale Issue or Pull Request.
|
|
||||||
# closeComment: >
|
|
||||||
# Your comment here.
|
|
||||||
|
|
||||||
# Limit the number of actions per hour, from 1-30. Default is 30
|
|
||||||
limitPerRun: 30
|
|
||||||
|
|
||||||
# Limit to only `issues` or `pulls`
|
|
||||||
only: issues
|
|
||||||
10
.github/workflows/ci.yaml
vendored
10
.github/workflows/ci.yaml
vendored
@@ -34,10 +34,8 @@ jobs:
|
|||||||
run: yarn install
|
run: yarn install
|
||||||
env:
|
env:
|
||||||
CI: true
|
CI: true
|
||||||
- name: Build icons
|
- name: Build resources
|
||||||
run: ./node_modules/.bin/gulp gen-icons-hassio gen-icons-mdi gen-icons-app
|
run: ./node_modules/.bin/gulp gen-icons-json build-translations gather-gallery-demos
|
||||||
- name: Build translations
|
|
||||||
run: ./node_modules/.bin/gulp build-translations
|
|
||||||
- name: Run eslint
|
- name: Run eslint
|
||||||
run: ./node_modules/.bin/eslint '{**/src,src}/**/*.{js,ts,html}' --ignore-path .gitignore
|
run: ./node_modules/.bin/eslint '{**/src,src}/**/*.{js,ts,html}' --ignore-path .gitignore
|
||||||
- name: Run tsc
|
- name: Run tsc
|
||||||
@@ -94,7 +92,7 @@ jobs:
|
|||||||
- name: Build Application
|
- name: Build Application
|
||||||
run: ./node_modules/.bin/gulp build-app
|
run: ./node_modules/.bin/gulp build-app
|
||||||
env:
|
env:
|
||||||
TRAVIS: "true"
|
IS_TEST: "true"
|
||||||
supervisor:
|
supervisor:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [lint, test]
|
needs: [lint, test]
|
||||||
@@ -122,4 +120,4 @@ jobs:
|
|||||||
- name: Build Application
|
- name: Build Application
|
||||||
run: ./node_modules/.bin/gulp build-hassio
|
run: ./node_modules/.bin/gulp build-hassio
|
||||||
env:
|
env:
|
||||||
TRAVIS: "true"
|
IS_TEST: "true"
|
||||||
|
|||||||
60
.github/workflows/codeql-analysis.yml
vendored
Normal file
60
.github/workflows/codeql-analysis.yml
vendored
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
name: "CodeQL"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [dev, master]
|
||||||
|
pull_request:
|
||||||
|
# The branches below must be a subset of the branches above
|
||||||
|
branches: [dev]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analyze:
|
||||||
|
name: Analyze
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
# Override automatic language detection by changing the below list
|
||||||
|
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
|
||||||
|
language: ['javascript']
|
||||||
|
# Learn more...
|
||||||
|
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
# We must fetch at least the immediate parents so that if this is
|
||||||
|
# a pull request then we can checkout the head.
|
||||||
|
fetch-depth: 2
|
||||||
|
|
||||||
|
# If this run was triggered by a pull request event, then checkout
|
||||||
|
# the head of the pull request instead of the merge commit.
|
||||||
|
- run: git checkout HEAD^2
|
||||||
|
if: ${{ github.event_name == 'pull_request' }}
|
||||||
|
|
||||||
|
# Initializes the CodeQL tools for scanning.
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v1
|
||||||
|
with:
|
||||||
|
languages: ${{ matrix.language }}
|
||||||
|
|
||||||
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||||
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
|
- name: Autobuild
|
||||||
|
uses: github/codeql-action/autobuild@v1
|
||||||
|
|
||||||
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
|
# 📚 https://git.io/JvXDl
|
||||||
|
|
||||||
|
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||||
|
# and modify them (or add more) to build your code if your project
|
||||||
|
# uses a compiled language
|
||||||
|
|
||||||
|
#- run: |
|
||||||
|
# make bootstrap
|
||||||
|
# make release
|
||||||
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v1
|
||||||
20
.github/workflows/lock.yml
vendored
Normal file
20
.github/workflows/lock.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
name: Lock
|
||||||
|
|
||||||
|
# yamllint disable-line rule:truthy
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 * * * *"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lock:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: dessant/lock-threads@v2.0.1
|
||||||
|
with:
|
||||||
|
github-token: ${{ github.token }}
|
||||||
|
issue-lock-inactive-days: "30"
|
||||||
|
issue-exclude-created-before: "2020-10-01T00:00:00Z"
|
||||||
|
issue-lock-reason: ""
|
||||||
|
pr-lock-inactive-days: "1"
|
||||||
|
pr-exclude-created-before: "2020-11-01T00:00:00Z"
|
||||||
|
pr-lock-reason: ""
|
||||||
14
.github/workflows/release-drafter.yaml
vendored
Normal file
14
.github/workflows/release-drafter.yaml
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
name: Release Drafter
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- dev
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update_release_draft:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: release-drafter/release-drafter@v5
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
42
.github/workflows/stale.yml
vendored
Normal file
42
.github/workflows/stale.yml
vendored
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
name: Stale
|
||||||
|
|
||||||
|
# yamllint disable-line rule:truthy
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 * * * *"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
stale:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: 90 days stale policy
|
||||||
|
uses: actions/stale@v3.0.13
|
||||||
|
with:
|
||||||
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
days-before-stale: 90
|
||||||
|
days-before-close: 7
|
||||||
|
operations-per-run: 25
|
||||||
|
remove-stale-when-updated: true
|
||||||
|
stale-issue-label: "stale"
|
||||||
|
exempt-issue-labels: "no-stale,Help%20wanted,help-wanted,feature-request,feature%20request"
|
||||||
|
stale-issue-message: >
|
||||||
|
There hasn't been any activity on this issue recently. Due to the
|
||||||
|
high number of incoming GitHub notifications, we have to clean some
|
||||||
|
of the old issues, as many of them have already been resolved with
|
||||||
|
the latest updates.
|
||||||
|
|
||||||
|
Please make sure to update to the latest Home Assistant version and
|
||||||
|
check if that solves the issue. Let us know if that works for you by
|
||||||
|
adding a comment 👍
|
||||||
|
|
||||||
|
This issue has now been marked as stale and will be closed if no
|
||||||
|
further activity occurs. Thank you for your contributions.
|
||||||
|
|
||||||
|
stale-pr-label: "stale"
|
||||||
|
exempt-pr-labels: "no-stale"
|
||||||
|
stale-pr-message: >
|
||||||
|
There hasn't been any activity on this pull request recently. This
|
||||||
|
pull request has been automatically marked as stale because of that
|
||||||
|
and will be closed if no further activity occurs within 7 days.
|
||||||
|
|
||||||
|
Thank you for your contributions.
|
||||||
8
.gitignore
vendored
8
.gitignore
vendored
@@ -5,7 +5,6 @@ npm-debug.log
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
hass_frontend/*
|
hass_frontend/*
|
||||||
.reify-cache
|
.reify-cache
|
||||||
demo/hademo-icons.html
|
|
||||||
|
|
||||||
# Python stuff
|
# Python stuff
|
||||||
*.py[cod]
|
*.py[cod]
|
||||||
@@ -24,8 +23,10 @@ dist
|
|||||||
# vscode
|
# vscode
|
||||||
.vscode/*
|
.vscode/*
|
||||||
!.vscode/extensions.json
|
!.vscode/extensions.json
|
||||||
|
!.vscode/launch.json
|
||||||
|
!.vscode/tasks.json
|
||||||
|
|
||||||
# Cast dev settings
|
# Cast dev settings
|
||||||
src/cast/dev_const.ts
|
src/cast/dev_const.ts
|
||||||
|
|
||||||
# Secrets
|
# Secrets
|
||||||
@@ -34,3 +35,6 @@ yarn-error.log
|
|||||||
|
|
||||||
#asdf
|
#asdf
|
||||||
.tool-versions
|
.tool-versions
|
||||||
|
|
||||||
|
# Home Assistant config
|
||||||
|
/config
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
jshint:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
eslint:
|
|
||||||
enabled: true
|
|
||||||
config_file: .eslintrc-hound.json
|
|
||||||
@@ -3,7 +3,6 @@ build-translations/*
|
|||||||
translations/*
|
translations/*
|
||||||
node_modules/*
|
node_modules/*
|
||||||
hass_frontend/*
|
hass_frontend/*
|
||||||
demo/hademo-icons.html
|
|
||||||
pip-selfcheck.json
|
pip-selfcheck.json
|
||||||
|
|
||||||
# vscode
|
# vscode
|
||||||
|
|||||||
44
.vscode/launch.json
vendored
Normal file
44
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
// https://github.com/microsoft/vscode-js-debug/blob/master/OPTIONS.md
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Debug Frontend",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "pwa-chrome",
|
||||||
|
"url": "http://localhost:8123/",
|
||||||
|
"webRoot": "${workspaceFolder}/hass_frontend",
|
||||||
|
"disableNetworkCache": true,
|
||||||
|
"preLaunchTask": "Develop Frontend",
|
||||||
|
"outFiles": [
|
||||||
|
"${workspaceFolder}/hass_frontend/frontend_latest/*.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Debug Gallery",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "pwa-chrome",
|
||||||
|
"url": "http://localhost:8100/",
|
||||||
|
"webRoot": "${workspaceFolder}/gallery/dist",
|
||||||
|
"disableNetworkCache": true,
|
||||||
|
"preLaunchTask": "Develop Gallery"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Debug Demo",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "pwa-chrome",
|
||||||
|
"url": "http://localhost:8090/",
|
||||||
|
"webRoot": "${workspaceFolder}/demo/dist",
|
||||||
|
"disableNetworkCache": true,
|
||||||
|
"preLaunchTask": "Develop Demo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Debug Cast",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "pwa-chrome",
|
||||||
|
"url": "http://localhost:8080/",
|
||||||
|
"webRoot": "${workspaceFolder}/cast/dist",
|
||||||
|
"disableNetworkCache": true,
|
||||||
|
"preLaunchTask": "Develop Cast"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
208
.vscode/tasks.json
vendored
Normal file
208
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,208 @@
|
|||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "Develop Frontend",
|
||||||
|
"type": "gulp",
|
||||||
|
"task": "develop-app",
|
||||||
|
// Sync changes here to other tasks until issue resolved
|
||||||
|
// https://github.com/Microsoft/vscode/issues/61497
|
||||||
|
"problemMatcher": {
|
||||||
|
"owner": "ha-build",
|
||||||
|
"source": "ha-build",
|
||||||
|
"fileLocation": "absolute",
|
||||||
|
"severity": "error",
|
||||||
|
"pattern": [
|
||||||
|
{
|
||||||
|
"regexp": "(SyntaxError): (.+): (.+) \\((\\d+):(\\d+)\\)",
|
||||||
|
"severity": 1,
|
||||||
|
"file": 2,
|
||||||
|
"message": 3,
|
||||||
|
"line": 4,
|
||||||
|
"column": 5
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"background": {
|
||||||
|
"activeOnStart": true,
|
||||||
|
"beginsPattern": "Changes detected. Starting compilation",
|
||||||
|
"endsPattern": "Build done @"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"isBackground": true,
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"runOptions": {
|
||||||
|
"instanceLimit": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Develop Supervisor panel",
|
||||||
|
"type": "gulp",
|
||||||
|
"task": "develop-hassio",
|
||||||
|
"problemMatcher": {
|
||||||
|
"owner": "ha-build",
|
||||||
|
"source": "ha-build",
|
||||||
|
"fileLocation": "absolute",
|
||||||
|
"severity": "error",
|
||||||
|
"pattern": [
|
||||||
|
{
|
||||||
|
"regexp": "(SyntaxError): (.+): (.+) \\((\\d+):(\\d+)\\)",
|
||||||
|
"severity": 1,
|
||||||
|
"file": 2,
|
||||||
|
"message": 3,
|
||||||
|
"line": 4,
|
||||||
|
"column": 5
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"background": {
|
||||||
|
"activeOnStart": true,
|
||||||
|
"beginsPattern": "Changes detected. Starting compilation",
|
||||||
|
"endsPattern": "Build done @"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"isBackground": true,
|
||||||
|
"group": "build",
|
||||||
|
"runOptions": {
|
||||||
|
"instanceLimit": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Develop Gallery",
|
||||||
|
"type": "gulp",
|
||||||
|
"task": "develop-gallery",
|
||||||
|
"problemMatcher": {
|
||||||
|
"owner": "ha-build",
|
||||||
|
"source": "ha-build",
|
||||||
|
"fileLocation": "absolute",
|
||||||
|
"severity": "error",
|
||||||
|
"pattern": [
|
||||||
|
{
|
||||||
|
"regexp": "(SyntaxError): (.+): (.+) \\((\\d+):(\\d+)\\)",
|
||||||
|
"severity": 1,
|
||||||
|
"file": 2,
|
||||||
|
"message": 3,
|
||||||
|
"line": 4,
|
||||||
|
"column": 5
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"background": {
|
||||||
|
"activeOnStart": true,
|
||||||
|
"beginsPattern": "Changes detected. Starting compilation",
|
||||||
|
"endsPattern": "Build done @"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"isBackground": true,
|
||||||
|
"group": "build",
|
||||||
|
"runOptions": {
|
||||||
|
"instanceLimit": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Develop Demo",
|
||||||
|
"type": "gulp",
|
||||||
|
"task": "develop-demo",
|
||||||
|
"problemMatcher": {
|
||||||
|
"owner": "ha-build",
|
||||||
|
"source": "ha-build",
|
||||||
|
"fileLocation": "absolute",
|
||||||
|
"severity": "error",
|
||||||
|
"pattern": [
|
||||||
|
{
|
||||||
|
"regexp": "(SyntaxError): (.+): (.+) \\((\\d+):(\\d+)\\)",
|
||||||
|
"severity": 1,
|
||||||
|
"file": 2,
|
||||||
|
"message": 3,
|
||||||
|
"line": 4,
|
||||||
|
"column": 5
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"background": {
|
||||||
|
"activeOnStart": true,
|
||||||
|
"beginsPattern": "Changes detected. Starting compilation",
|
||||||
|
"endsPattern": "Build done @"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"isBackground": true,
|
||||||
|
"group": "build",
|
||||||
|
"runOptions": {
|
||||||
|
"instanceLimit": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Develop Cast",
|
||||||
|
"type": "gulp",
|
||||||
|
"task": "develop-cast",
|
||||||
|
"problemMatcher": {
|
||||||
|
"owner": "ha-build",
|
||||||
|
"source": "ha-build",
|
||||||
|
"fileLocation": "absolute",
|
||||||
|
"severity": "error",
|
||||||
|
"pattern": [
|
||||||
|
{
|
||||||
|
"regexp": "(SyntaxError): (.+): (.+) \\((\\d+):(\\d+)\\)",
|
||||||
|
"severity": 1,
|
||||||
|
"file": 2,
|
||||||
|
"message": 3,
|
||||||
|
"line": 4,
|
||||||
|
"column": 5
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"background": {
|
||||||
|
"activeOnStart": true,
|
||||||
|
"beginsPattern": "Changes detected. Starting compilation",
|
||||||
|
"endsPattern": "Build done @"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"isBackground": true,
|
||||||
|
"group": "build",
|
||||||
|
"runOptions": {
|
||||||
|
"instanceLimit": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Run HA Core in devcontainer",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "script/core",
|
||||||
|
"isBackground": true,
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"problemMatcher": [],
|
||||||
|
"runOptions": {
|
||||||
|
"instanceLimit": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "Run HA Core for Supervisor in devcontainer",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "HASSIO=${input:supervisorHost} HASSIO_TOKEN=${input:supervisorToken} script/core",
|
||||||
|
"isBackground": true,
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"problemMatcher": [],
|
||||||
|
"runOptions": {
|
||||||
|
"instanceLimit": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"id": "supervisorHost",
|
||||||
|
"type": "promptString",
|
||||||
|
"description": "The IP of the Supervisor host running the Remote API proxy add-on"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "supervisorToken",
|
||||||
|
"type": "promptString",
|
||||||
|
"description": "The token for the Remote API proxy add-on"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -2,79 +2,139 @@
|
|||||||
|
|
||||||
## Our Pledge
|
## Our Pledge
|
||||||
|
|
||||||
In the interest of fostering an open and welcoming environment, we as
|
We as members, contributors, and leaders pledge to make participation in our
|
||||||
contributors and maintainers pledge to making participation in our project and
|
community a harassment-free experience for everyone, regardless of age, body
|
||||||
our community a harassment-free experience for everyone, regardless of age, body
|
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||||
size, disability, ethnicity, gender identity and expression, level of experience,
|
identity and expression, level of experience, education, socio-economic status,
|
||||||
nationality, personal appearance, race, religion, or sexual identity and
|
nationality, personal appearance, race, religion, or sexual identity
|
||||||
orientation.
|
and orientation.
|
||||||
|
|
||||||
|
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||||
|
diverse, inclusive, and healthy community.
|
||||||
|
|
||||||
## Our Standards
|
## Our Standards
|
||||||
|
|
||||||
Examples of behavior that contributes to creating a positive environment
|
Examples of behavior that contributes to a positive environment for our
|
||||||
include:
|
community include:
|
||||||
|
|
||||||
* Using welcoming and inclusive language
|
* Demonstrating empathy and kindness toward other people
|
||||||
* Being respectful of differing viewpoints and experiences
|
* Being respectful of differing opinions, viewpoints, and experiences
|
||||||
* Gracefully accepting constructive criticism
|
* Giving and gracefully accepting constructive feedback
|
||||||
* Focusing on what is best for the community
|
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||||
* Showing empathy towards other community members
|
and learning from the experience
|
||||||
|
* Focusing on what is best not just for us as individuals, but for the
|
||||||
|
overall community
|
||||||
|
|
||||||
Examples of unacceptable behavior by participants include:
|
Examples of unacceptable behavior include:
|
||||||
|
|
||||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
* The use of sexualized language or imagery, and sexual attention or
|
||||||
advances
|
advances of any kind
|
||||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||||
* Public or private harassment
|
* Public or private harassment
|
||||||
* Publishing others' private information, such as a physical or electronic
|
* Publishing others' private information, such as a physical or email
|
||||||
address, without explicit permission
|
address, without their explicit permission
|
||||||
* Other conduct which could reasonably be considered inappropriate in a
|
* Other conduct which could reasonably be considered inappropriate in a
|
||||||
professional setting
|
professional setting
|
||||||
|
|
||||||
## Our Responsibilities
|
## Enforcement Responsibilities
|
||||||
|
|
||||||
Project maintainers are responsible for clarifying the standards of acceptable
|
Community leaders are responsible for clarifying and enforcing our standards of
|
||||||
behavior and are expected to take appropriate and fair corrective action in
|
acceptable behavior and will take appropriate and fair corrective action in
|
||||||
response to any instances of unacceptable behavior.
|
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||||
|
or harmful.
|
||||||
|
|
||||||
Project maintainers have the right and responsibility to remove, edit, or
|
Community leaders have the right and responsibility to remove, edit, or reject
|
||||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||||
permanently any contributor for other behaviors that they deem inappropriate,
|
decisions when appropriate.
|
||||||
threatening, offensive, or harmful.
|
|
||||||
|
|
||||||
## Scope
|
## Scope
|
||||||
|
|
||||||
This Code of Conduct applies both within project spaces and in public spaces
|
This Code of Conduct applies within all community spaces, and also applies when
|
||||||
when an individual is representing the project or its community. Examples of
|
an individual is officially representing the community in public spaces.
|
||||||
representing a project or community include using an official project e-mail
|
Examples of representing our community include using an official e-mail address,
|
||||||
address, posting via an official social media account, or acting as an appointed
|
posting via an official social media account, or acting as an appointed
|
||||||
representative at an online or offline event. Representation of a project may be
|
representative at an online or offline event.
|
||||||
further defined and clarified by project maintainers.
|
|
||||||
|
|
||||||
## Enforcement
|
## Enforcement
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
reported by contacting the project team at [safety@home-assistant.io][email]. All
|
reported to the community leaders responsible for enforcement at
|
||||||
complaints will be reviewed and investigated and will result in a response that
|
[safety@home-assistant.io][email] or by using the report/flag feature of
|
||||||
is deemed necessary and appropriate to the circumstances. The project team is
|
the medium used. All complaints will be reviewed and investigated promptly and
|
||||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
fairly.
|
||||||
Further details of specific enforcement policies may be posted separately.
|
|
||||||
|
|
||||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
All community leaders are obligated to respect the privacy and security of the
|
||||||
faith may face temporary or permanent repercussions as determined by other
|
reporter of any incident.
|
||||||
members of the project's leadership.
|
|
||||||
|
## Enforcement Guidelines
|
||||||
|
|
||||||
|
Community leaders will follow these Community Impact Guidelines in determining
|
||||||
|
the consequences for any action they deem in violation of this Code of Conduct:
|
||||||
|
|
||||||
|
### 1. Correction
|
||||||
|
|
||||||
|
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||||
|
unprofessional or unwelcome in the community.
|
||||||
|
|
||||||
|
**Consequence**: A private, written warning from community leaders, providing
|
||||||
|
clarity around the nature of the violation and an explanation of why the
|
||||||
|
behavior was inappropriate. A public apology may be requested.
|
||||||
|
|
||||||
|
### 2. Warning
|
||||||
|
|
||||||
|
**Community Impact**: A violation through a single incident or series
|
||||||
|
of actions.
|
||||||
|
|
||||||
|
**Consequence**: A warning with consequences for continued behavior. No
|
||||||
|
interaction with the people involved, including unsolicited interaction with
|
||||||
|
those enforcing the Code of Conduct, for a specified period of time. This
|
||||||
|
includes avoiding interactions in community spaces as well as external channels
|
||||||
|
like social media. Violating these terms may lead to a temporary or
|
||||||
|
permanent ban.
|
||||||
|
|
||||||
|
### 3. Temporary Ban
|
||||||
|
|
||||||
|
**Community Impact**: A serious violation of community standards, including
|
||||||
|
sustained inappropriate behavior.
|
||||||
|
|
||||||
|
**Consequence**: A temporary ban from any sort of interaction or public
|
||||||
|
communication with the community for a specified period of time. No public or
|
||||||
|
private interaction with the people involved, including unsolicited interaction
|
||||||
|
with those enforcing the Code of Conduct, is allowed during this period.
|
||||||
|
Violating these terms may lead to a permanent ban.
|
||||||
|
|
||||||
|
### 4. Permanent Ban
|
||||||
|
|
||||||
|
**Community Impact**: Demonstrating a pattern of violation of community
|
||||||
|
standards, including sustained inappropriate behavior, harassment of an
|
||||||
|
individual, or aggression toward or disparagement of classes of individuals.
|
||||||
|
|
||||||
|
**Consequence**: A permanent ban from any sort of public interaction within
|
||||||
|
the community.
|
||||||
|
|
||||||
## Attribution
|
## Attribution
|
||||||
|
|
||||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||||
available [here][version].
|
version 2.0, available [here][version].
|
||||||
|
|
||||||
|
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||||
|
enforcement ladder][mozilla].
|
||||||
|
|
||||||
## Adoption
|
## Adoption
|
||||||
|
|
||||||
This Code of Conduct was first adopted January 21st, 2017 and announced in [this][coc-blog] blog post.
|
This Code of Conduct was first adopted January 21st, 2017 and announced in
|
||||||
|
[this][coc-blog] blog post and has been updated on May 25th, 2020 to version
|
||||||
|
2.0 of the [Contributor Covenant][homepage] as announced in [this][coc2-blog]
|
||||||
|
blog post.
|
||||||
|
|
||||||
[homepage]: http://contributor-covenant.org
|
For answers to common questions about this code of conduct, see the FAQ at
|
||||||
[version]: http://contributor-covenant.org/version/1/4/
|
<https://www.contributor-covenant.org/faq>. Translations are available at
|
||||||
|
<https://www.contributor-covenant.org/translations>.
|
||||||
|
|
||||||
|
[coc-blog]: /blog/2017/01/21/home-assistant-governance/
|
||||||
|
[coc2-blog]: /blog/2020/05/25/code-of-conduct-updated/
|
||||||
[email]: mailto:safety@home-assistant.io
|
[email]: mailto:safety@home-assistant.io
|
||||||
[coc-blog]: https://home-assistant.io/blog/2017/01/21/home-assistant-governance/
|
[homepage]: http://contributor-covenant.org
|
||||||
|
[mozilla]: https://github.com/mozilla/diversity
|
||||||
|
[version]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
|
||||||
|
|||||||
31
Dockerfile
31
Dockerfile
@@ -1,31 +0,0 @@
|
|||||||
FROM node:8.11.1-alpine
|
|
||||||
|
|
||||||
# install yarn
|
|
||||||
ENV PATH /root/.yarn/bin:$PATH
|
|
||||||
|
|
||||||
## Install/force base tools
|
|
||||||
RUN apk update \
|
|
||||||
&& apk add make g++ curl bash binutils tar git python2 python3 \
|
|
||||||
&& rm -rf /var/cache/apk/* \
|
|
||||||
&& /bin/bash \
|
|
||||||
&& touch ~/.bashrc
|
|
||||||
|
|
||||||
## Install yarn
|
|
||||||
RUN curl -o- -L https://yarnpkg.com/install.sh | bash
|
|
||||||
|
|
||||||
## Setup the project
|
|
||||||
RUN mkdir -p /frontend
|
|
||||||
|
|
||||||
WORKDIR /frontend
|
|
||||||
|
|
||||||
COPY package.json yarn.lock ./
|
|
||||||
|
|
||||||
RUN yarn install --frozen-lockfile
|
|
||||||
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
COPY script/docker_entrypoint.sh /usr/bin/docker_entrypoint.sh
|
|
||||||
|
|
||||||
RUN chmod +x /usr/bin/docker_entrypoint.sh
|
|
||||||
|
|
||||||
CMD [ "docker_entrypoint.sh" ]
|
|
||||||
15
README.md
15
README.md
@@ -6,12 +6,12 @@ This is the repository for the official [Home Assistant](https://home-assistant.
|
|||||||
|
|
||||||
- [View demo of Home Assistant](https://demo.home-assistant.io/)
|
- [View demo of Home Assistant](https://demo.home-assistant.io/)
|
||||||
- [More information about Home Assistant](https://home-assistant.io)
|
- [More information about Home Assistant](https://home-assistant.io)
|
||||||
- [Frontend development instructions](https://developers.home-assistant.io/docs/en/frontend_index.html)
|
- [Frontend development instructions](https://developers.home-assistant.io/docs/frontend/development/)
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
- Initial setup: `script/setup`
|
- Initial setup: `script/setup`
|
||||||
- Development: [Instructions](https://developers.home-assistant.io/docs/en/frontend_development.html)
|
- Development: [Instructions](https://developers.home-assistant.io/docs/frontend/development/)
|
||||||
- Production build: `script/build_frontend`
|
- Production build: `script/build_frontend`
|
||||||
- Gallery: `cd gallery && script/develop_gallery`
|
- Gallery: `cd gallery && script/develop_gallery`
|
||||||
- Hass.io: [Instructions](https://developers.home-assistant.io/docs/en/hassio_hass.html)
|
- Hass.io: [Instructions](https://developers.home-assistant.io/docs/en/hassio_hass.html)
|
||||||
@@ -22,17 +22,8 @@ This is the repository for the official [Home Assistant](https://home-assistant.
|
|||||||
|
|
||||||
A complete guide can be found at the following [link](https://www.home-assistant.io/developers/frontend/). It describes a short guide for the build of project.
|
A complete guide can be found at the following [link](https://www.home-assistant.io/developers/frontend/). It describes a short guide for the build of project.
|
||||||
|
|
||||||
### Docker environment
|
|
||||||
|
|
||||||
It is possible to compile the project and/or run commands in the development environment having only the [Docker](https://www.docker.com) pre-installed in the system. On the root of project you can do:
|
|
||||||
|
|
||||||
- `sh ./script/docker_run.sh build` Build all the project with one command
|
|
||||||
- `sh ./script/docker_run.sh bash` Open an interactive shell (the same environment generated by the _classic environment_) where you can run commands. This bash work on your project directory and any change on your file is automatically present within your build bash.
|
|
||||||
|
|
||||||
**Note**: if you have installed `npm` in addition to the `docker`, you can use the commands `npm run docker_build` and `npm run bash` to get a full build or bash as explained above
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Home Assistant is open-source and Apache 2 licensed. Feel free to browse the repository, learn and reuse parts in your own projects.
|
Home Assistant is open-source and Apache 2 licensed. Feel free to browse the repository, learn and reuse parts in your own projects.
|
||||||
|
|
||||||
We use [BrowserStack](https://www.browserstack.com) to test Home Assistant on a large variation of devices.
|
We use [BrowserStack](https://www.browserstack.com) to test Home Assistant on a large variety of devices.
|
||||||
|
|||||||
39
build-scripts/README.md
Normal file
39
build-scripts/README.md
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
# Bundling Home Assistant Frontend
|
||||||
|
|
||||||
|
The Home Assistant build pipeline contains various steps to prepare a build.
|
||||||
|
|
||||||
|
- Generating icon files to be included
|
||||||
|
- Generating translation files to be included
|
||||||
|
- Converting TypeScript, CSS and JSON files to JavaScript
|
||||||
|
- Bundling
|
||||||
|
- Minifying the files
|
||||||
|
- Generating the HTML entrypoint files
|
||||||
|
- Generating the service worker
|
||||||
|
- Compressing the files
|
||||||
|
|
||||||
|
## Converting files
|
||||||
|
|
||||||
|
Currently in Home Assistant we use a bundler to convert TypeScript, CSS and JSON files to JavaScript files that the browser understands.
|
||||||
|
|
||||||
|
We currently rely on Webpack but also have experimental Rollup support. Both of these programs bundle the converted files in both production and development.
|
||||||
|
|
||||||
|
For development, bundling is optional. We just want to get the right files in the browser.
|
||||||
|
|
||||||
|
Responsibilities of the converter during development:
|
||||||
|
|
||||||
|
- Convert TypeScript to JavaScript
|
||||||
|
- Convert CSS to JavaScript that sets the content as the default export
|
||||||
|
- Convert JSON to JavaScript that sets the content as the default export
|
||||||
|
- Make sure import, dynamic import and web worker references work
|
||||||
|
- Add extensions where missing
|
||||||
|
- Resolve absolute package imports
|
||||||
|
- Filter out specific imports/packages
|
||||||
|
- Replace constants with values
|
||||||
|
|
||||||
|
In production, the following responsibilities are added:
|
||||||
|
|
||||||
|
- Minify HTML
|
||||||
|
- Bundle multiple imports so that the browser can fetch less files
|
||||||
|
- Generate a second version that is ES5 compatible
|
||||||
|
|
||||||
|
Configuration for all these steps are specified in [bundle.js](bundle.js).
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
module.exports.babelLoaderConfig = ({ latestBuild }) => {
|
|
||||||
if (latestBuild === undefined) {
|
|
||||||
throw Error("latestBuild not defined for babel loader config");
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
test: /\.m?js$|\.tsx?$/,
|
|
||||||
use: {
|
|
||||||
loader: "babel-loader",
|
|
||||||
options: {
|
|
||||||
presets: [
|
|
||||||
!latestBuild && [
|
|
||||||
require("@babel/preset-env").default,
|
|
||||||
{ modules: false },
|
|
||||||
],
|
|
||||||
[
|
|
||||||
require("@babel/preset-typescript").default,
|
|
||||||
{
|
|
||||||
jsxPragma: "h",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
].filter(Boolean),
|
|
||||||
plugins: [
|
|
||||||
// Part of ES2018. Converts {...a, b: 2} to Object.assign({}, a, {b: 2})
|
|
||||||
[
|
|
||||||
"@babel/plugin-proposal-object-rest-spread",
|
|
||||||
{ loose: true, useBuiltIns: true },
|
|
||||||
],
|
|
||||||
// Only support the syntax, Webpack will handle it.
|
|
||||||
"@babel/syntax-dynamic-import",
|
|
||||||
[
|
|
||||||
"@babel/transform-react-jsx",
|
|
||||||
{
|
|
||||||
pragma: "h",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
"@babel/plugin-proposal-optional-chaining",
|
|
||||||
"@babel/plugin-proposal-nullish-coalescing-operator",
|
|
||||||
[
|
|
||||||
require("@babel/plugin-proposal-decorators").default,
|
|
||||||
{ decoratorsBeforeExport: true },
|
|
||||||
],
|
|
||||||
[
|
|
||||||
require("@babel/plugin-proposal-class-properties").default,
|
|
||||||
{ loose: true },
|
|
||||||
],
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
};
|
|
||||||
203
build-scripts/bundle.js
Normal file
203
build-scripts/bundle.js
Normal file
@@ -0,0 +1,203 @@
|
|||||||
|
const path = require("path");
|
||||||
|
const env = require("./env.js");
|
||||||
|
const paths = require("./paths.js");
|
||||||
|
|
||||||
|
// Files from NPM Packages that should not be imported
|
||||||
|
module.exports.ignorePackages = ({ latestBuild }) => [
|
||||||
|
// Bloats bundle and it's not used.
|
||||||
|
path.resolve(require.resolve("moment"), "../locale"),
|
||||||
|
// Part of yaml.js and only used for !!js functions that we don't use
|
||||||
|
require.resolve("esprima"),
|
||||||
|
];
|
||||||
|
|
||||||
|
// Files from NPM packages that we should replace with empty file
|
||||||
|
module.exports.emptyPackages = ({ latestBuild }) =>
|
||||||
|
[
|
||||||
|
// Contains all color definitions for all material color sets.
|
||||||
|
// We don't use it
|
||||||
|
require.resolve("@polymer/paper-styles/color.js"),
|
||||||
|
require.resolve("@polymer/paper-styles/default-theme.js"),
|
||||||
|
// Loads stuff from a CDN
|
||||||
|
require.resolve("@polymer/font-roboto/roboto.js"),
|
||||||
|
require.resolve("@vaadin/vaadin-material-styles/font-roboto.js"),
|
||||||
|
// Compatibility not needed for latest builds
|
||||||
|
latestBuild &&
|
||||||
|
// wrapped in require.resolve so it blows up if file no longer exists
|
||||||
|
require.resolve(
|
||||||
|
path.resolve(paths.polymer_dir, "src/resources/compatibility.ts")
|
||||||
|
),
|
||||||
|
// This polyfill is loaded in workers to support ES5, filter it out.
|
||||||
|
latestBuild && require.resolve("proxy-polyfill/src/index.js"),
|
||||||
|
].filter(Boolean);
|
||||||
|
|
||||||
|
module.exports.definedVars = ({ isProdBuild, latestBuild, defineOverlay }) => ({
|
||||||
|
__DEV__: !isProdBuild,
|
||||||
|
__BUILD__: JSON.stringify(latestBuild ? "latest" : "es5"),
|
||||||
|
__VERSION__: JSON.stringify(env.version()),
|
||||||
|
__DEMO__: false,
|
||||||
|
__BACKWARDS_COMPAT__: false,
|
||||||
|
__STATIC_PATH__: "/static/",
|
||||||
|
"process.env.NODE_ENV": JSON.stringify(
|
||||||
|
isProdBuild ? "production" : "development"
|
||||||
|
),
|
||||||
|
...defineOverlay,
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports.terserOptions = (latestBuild) => ({
|
||||||
|
safari10: !latestBuild,
|
||||||
|
ecma: latestBuild ? undefined : 5,
|
||||||
|
output: { comments: false },
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports.babelOptions = ({ latestBuild }) => ({
|
||||||
|
babelrc: false,
|
||||||
|
presets: [
|
||||||
|
!latestBuild && [
|
||||||
|
require("@babel/preset-env").default,
|
||||||
|
{
|
||||||
|
useBuiltIns: "entry",
|
||||||
|
corejs: "3.6",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
require("@babel/preset-typescript").default,
|
||||||
|
].filter(Boolean),
|
||||||
|
plugins: [
|
||||||
|
// Part of ES2018. Converts {...a, b: 2} to Object.assign({}, a, {b: 2})
|
||||||
|
!latestBuild && [
|
||||||
|
"@babel/plugin-proposal-object-rest-spread",
|
||||||
|
{ loose: true, useBuiltIns: true },
|
||||||
|
],
|
||||||
|
// Only support the syntax, Webpack will handle it.
|
||||||
|
"@babel/plugin-syntax-import-meta",
|
||||||
|
"@babel/plugin-syntax-dynamic-import",
|
||||||
|
"@babel/plugin-proposal-optional-chaining",
|
||||||
|
"@babel/plugin-proposal-nullish-coalescing-operator",
|
||||||
|
[
|
||||||
|
require("@babel/plugin-proposal-decorators").default,
|
||||||
|
{ decoratorsBeforeExport: true },
|
||||||
|
],
|
||||||
|
[
|
||||||
|
require("@babel/plugin-proposal-class-properties").default,
|
||||||
|
{ loose: true },
|
||||||
|
],
|
||||||
|
].filter(Boolean),
|
||||||
|
});
|
||||||
|
|
||||||
|
// Are already ES5, cause warnings when babelified.
|
||||||
|
module.exports.babelExclude = () => [
|
||||||
|
require.resolve("@mdi/js/mdi.js"),
|
||||||
|
require.resolve("hls.js"),
|
||||||
|
];
|
||||||
|
|
||||||
|
const outputPath = (outputRoot, latestBuild) =>
|
||||||
|
path.resolve(outputRoot, latestBuild ? "frontend_latest" : "frontend_es5");
|
||||||
|
|
||||||
|
const publicPath = (latestBuild, root = "") =>
|
||||||
|
latestBuild ? `${root}/frontend_latest/` : `${root}/frontend_es5/`;
|
||||||
|
|
||||||
|
/*
|
||||||
|
BundleConfig {
|
||||||
|
// Object with entrypoints that need to be bundled
|
||||||
|
entry: { [name: string]: pathToFile },
|
||||||
|
// Folder where bundled files need to be written
|
||||||
|
outputPath: string,
|
||||||
|
// absolute url-path where bundled files can be found
|
||||||
|
publicPath: string,
|
||||||
|
// extra definitions that we need to replace in source
|
||||||
|
defineOverlay: {[name: string]: value },
|
||||||
|
// if this is a production build
|
||||||
|
isProdBuild: boolean,
|
||||||
|
// If we're targeting latest browsers
|
||||||
|
latestBuild: boolean,
|
||||||
|
// If we're doing a stats build (create nice chunk names)
|
||||||
|
isStatsBuild: boolean,
|
||||||
|
// Names of entrypoints that should not be hashed
|
||||||
|
dontHash: Set<string>
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
module.exports.config = {
|
||||||
|
app({ isProdBuild, latestBuild, isStatsBuild, isWDS }) {
|
||||||
|
return {
|
||||||
|
entry: {
|
||||||
|
service_worker: "./src/entrypoints/service_worker.ts",
|
||||||
|
app: "./src/entrypoints/app.ts",
|
||||||
|
authorize: "./src/entrypoints/authorize.ts",
|
||||||
|
onboarding: "./src/entrypoints/onboarding.ts",
|
||||||
|
core: "./src/entrypoints/core.ts",
|
||||||
|
"custom-panel": "./src/entrypoints/custom-panel.ts",
|
||||||
|
},
|
||||||
|
outputPath: outputPath(paths.app_output_root, latestBuild),
|
||||||
|
publicPath: publicPath(latestBuild),
|
||||||
|
isProdBuild,
|
||||||
|
latestBuild,
|
||||||
|
isStatsBuild,
|
||||||
|
isWDS,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
demo({ isProdBuild, latestBuild, isStatsBuild }) {
|
||||||
|
return {
|
||||||
|
entry: {
|
||||||
|
main: path.resolve(paths.demo_dir, "src/entrypoint.ts"),
|
||||||
|
},
|
||||||
|
outputPath: outputPath(paths.demo_output_root, latestBuild),
|
||||||
|
publicPath: publicPath(latestBuild),
|
||||||
|
defineOverlay: {
|
||||||
|
__VERSION__: JSON.stringify(`DEMO-${env.version()}`),
|
||||||
|
__DEMO__: true,
|
||||||
|
},
|
||||||
|
isProdBuild,
|
||||||
|
latestBuild,
|
||||||
|
isStatsBuild,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
cast({ isProdBuild, latestBuild }) {
|
||||||
|
const entry = {
|
||||||
|
launcher: path.resolve(paths.cast_dir, "src/launcher/entrypoint.ts"),
|
||||||
|
};
|
||||||
|
|
||||||
|
if (latestBuild) {
|
||||||
|
entry.receiver = path.resolve(
|
||||||
|
paths.cast_dir,
|
||||||
|
"src/receiver/entrypoint.ts"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
entry,
|
||||||
|
outputPath: outputPath(paths.cast_output_root, latestBuild),
|
||||||
|
publicPath: publicPath(latestBuild),
|
||||||
|
isProdBuild,
|
||||||
|
latestBuild,
|
||||||
|
defineOverlay: {
|
||||||
|
__BACKWARDS_COMPAT__: true,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
hassio({ isProdBuild, latestBuild }) {
|
||||||
|
return {
|
||||||
|
entry: {
|
||||||
|
entrypoint: path.resolve(paths.hassio_dir, "src/entrypoint.ts"),
|
||||||
|
},
|
||||||
|
outputPath: outputPath(paths.hassio_output_root, latestBuild),
|
||||||
|
publicPath: publicPath(latestBuild, paths.hassio_publicPath),
|
||||||
|
isProdBuild,
|
||||||
|
latestBuild,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
gallery({ isProdBuild, latestBuild }) {
|
||||||
|
return {
|
||||||
|
entry: {
|
||||||
|
entrypoint: path.resolve(paths.gallery_dir, "src/entrypoint.js"),
|
||||||
|
},
|
||||||
|
outputPath: outputPath(paths.gallery_output_root, latestBuild),
|
||||||
|
publicPath: publicPath(latestBuild),
|
||||||
|
isProdBuild,
|
||||||
|
latestBuild,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -1,14 +1,35 @@
|
|||||||
|
const fs = require("fs");
|
||||||
|
const path = require("path");
|
||||||
|
const paths = require("./paths.js");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
useRollup() {
|
||||||
|
return process.env.ROLLUP === "1";
|
||||||
|
},
|
||||||
|
useWDS() {
|
||||||
|
return process.env.WDS === "1";
|
||||||
|
},
|
||||||
isProdBuild() {
|
isProdBuild() {
|
||||||
return process.env.NODE_ENV === "production";
|
return (
|
||||||
|
process.env.NODE_ENV === "production" || module.exports.isStatsBuild()
|
||||||
|
);
|
||||||
},
|
},
|
||||||
isStatsBuild() {
|
isStatsBuild() {
|
||||||
return process.env.STATS === "1";
|
return process.env.STATS === "1";
|
||||||
},
|
},
|
||||||
isTravis() {
|
isTest() {
|
||||||
return process.env.TRAVIS === "true";
|
return process.env.IS_TEST === "true";
|
||||||
},
|
},
|
||||||
isNetlify() {
|
isNetlify() {
|
||||||
return process.env.NETLIFY === "true";
|
return process.env.NETLIFY === "true";
|
||||||
},
|
},
|
||||||
|
version() {
|
||||||
|
const version = fs
|
||||||
|
.readFileSync(path.resolve(paths.polymer_dir, "setup.py"), "utf8")
|
||||||
|
.match(/\d{8}\.\d+/);
|
||||||
|
if (!version) {
|
||||||
|
throw Error("Version not found");
|
||||||
|
}
|
||||||
|
return version[0];
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
// Run HA develop mode
|
// Run HA develop mode
|
||||||
const gulp = require("gulp");
|
const gulp = require("gulp");
|
||||||
|
|
||||||
const envVars = require("../env");
|
const env = require("../env");
|
||||||
|
|
||||||
require("./clean.js");
|
require("./clean.js");
|
||||||
require("./translations.js");
|
require("./translations.js");
|
||||||
require("./gen-icons.js");
|
require("./gen-icons-json.js");
|
||||||
require("./gather-static.js");
|
require("./gather-static.js");
|
||||||
require("./compress.js");
|
require("./compress.js");
|
||||||
require("./webpack.js");
|
require("./webpack.js");
|
||||||
require("./service-worker.js");
|
require("./service-worker.js");
|
||||||
require("./entry-html.js");
|
require("./entry-html.js");
|
||||||
|
require("./rollup.js");
|
||||||
|
require("./wds.js");
|
||||||
|
|
||||||
gulp.task(
|
gulp.task(
|
||||||
"develop-app",
|
"develop-app",
|
||||||
@@ -20,14 +22,18 @@ gulp.task(
|
|||||||
},
|
},
|
||||||
"clean",
|
"clean",
|
||||||
gulp.parallel(
|
gulp.parallel(
|
||||||
"gen-service-worker-dev",
|
"gen-service-worker-app-dev",
|
||||||
gulp.parallel("gen-icons-app", "gen-icons-mdi"),
|
"gen-icons-json",
|
||||||
"gen-pages-dev",
|
"gen-pages-dev",
|
||||||
"gen-index-app-dev",
|
"gen-index-app-dev",
|
||||||
"build-translations"
|
"build-translations"
|
||||||
),
|
),
|
||||||
"copy-static",
|
"copy-static-app",
|
||||||
"webpack-watch-app"
|
env.useWDS()
|
||||||
|
? "wds-watch-app"
|
||||||
|
: env.useRollup()
|
||||||
|
? "rollup-watch-app"
|
||||||
|
: "webpack-watch-app"
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -38,15 +44,15 @@ gulp.task(
|
|||||||
process.env.NODE_ENV = "production";
|
process.env.NODE_ENV = "production";
|
||||||
},
|
},
|
||||||
"clean",
|
"clean",
|
||||||
gulp.parallel("gen-icons-app", "gen-icons-mdi", "build-translations"),
|
gulp.parallel("gen-icons-json", "build-translations"),
|
||||||
"copy-static",
|
"copy-static-app",
|
||||||
"webpack-prod-app",
|
env.useRollup() ? "rollup-prod-app" : "webpack-prod-app",
|
||||||
...// Don't compress running tests
|
...// Don't compress running tests
|
||||||
(envVars.isTravis() ? [] : ["compress-app"]),
|
(env.isTest() ? [] : ["compress-app"]),
|
||||||
gulp.parallel(
|
gulp.parallel(
|
||||||
"gen-pages-prod",
|
"gen-pages-prod",
|
||||||
"gen-index-app-prod",
|
"gen-index-app-prod",
|
||||||
"gen-service-worker-prod"
|
"gen-service-worker-app-prod"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,30 +1,27 @@
|
|||||||
const gulp = require("gulp");
|
const gulp = require("gulp");
|
||||||
|
|
||||||
|
const env = require("../env");
|
||||||
|
|
||||||
require("./clean.js");
|
require("./clean.js");
|
||||||
require("./translations.js");
|
require("./translations.js");
|
||||||
require("./gen-icons.js");
|
|
||||||
require("./gather-static.js");
|
require("./gather-static.js");
|
||||||
require("./webpack.js");
|
require("./webpack.js");
|
||||||
require("./service-worker.js");
|
require("./service-worker.js");
|
||||||
require("./entry-html.js");
|
require("./entry-html.js");
|
||||||
|
require("./rollup.js");
|
||||||
|
|
||||||
gulp.task(
|
gulp.task(
|
||||||
"develop-cast",
|
"develop-cast",
|
||||||
gulp.series(
|
gulp.series(
|
||||||
async function setEnv() {
|
async function setEnv() {
|
||||||
process.env.NODE_ENV = "development";
|
process.env.NODE_ENV = "development";
|
||||||
process.env.IS_CAST = "true";
|
|
||||||
},
|
},
|
||||||
"clean-cast",
|
"clean-cast",
|
||||||
"translations-enable-merge-backend",
|
"translations-enable-merge-backend",
|
||||||
gulp.parallel(
|
gulp.parallel("gen-icons-json", "build-translations"),
|
||||||
"gen-icons-app",
|
|
||||||
"gen-icons-mdi",
|
|
||||||
"gen-index-cast-dev",
|
|
||||||
"build-translations"
|
|
||||||
),
|
|
||||||
"copy-static-cast",
|
"copy-static-cast",
|
||||||
"webpack-dev-server-cast"
|
"gen-index-cast-dev",
|
||||||
|
env.useRollup() ? "rollup-dev-server-cast" : "webpack-dev-server-cast"
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -36,9 +33,9 @@ gulp.task(
|
|||||||
},
|
},
|
||||||
"clean-cast",
|
"clean-cast",
|
||||||
"translations-enable-merge-backend",
|
"translations-enable-merge-backend",
|
||||||
gulp.parallel("gen-icons-app", "gen-icons-mdi", "build-translations"),
|
gulp.parallel("gen-icons-json", "build-translations"),
|
||||||
"copy-static-cast",
|
"copy-static-cast",
|
||||||
"webpack-prod-cast",
|
env.useRollup() ? "rollup-prod-cast" : "webpack-prod-cast",
|
||||||
"gen-index-cast-prod"
|
"gen-index-cast-prod"
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,39 +1,36 @@
|
|||||||
const del = require("del");
|
const del = require("del");
|
||||||
const gulp = require("gulp");
|
const gulp = require("gulp");
|
||||||
const config = require("../paths");
|
const paths = require("../paths");
|
||||||
require("./translations");
|
require("./translations");
|
||||||
|
|
||||||
gulp.task(
|
gulp.task(
|
||||||
"clean",
|
"clean",
|
||||||
gulp.parallel("clean-translations", function cleanOutputAndBuildDir() {
|
gulp.parallel("clean-translations", function cleanOutputAndBuildDir() {
|
||||||
return del([config.root, config.build_dir]);
|
return del([paths.app_output_root, paths.build_dir]);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
gulp.task(
|
gulp.task(
|
||||||
"clean-demo",
|
"clean-demo",
|
||||||
gulp.parallel("clean-translations", function cleanOutputAndBuildDir() {
|
gulp.parallel("clean-translations", function cleanOutputAndBuildDir() {
|
||||||
return del([config.demo_root, config.build_dir]);
|
return del([paths.demo_output_root, paths.build_dir]);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
gulp.task(
|
gulp.task(
|
||||||
"clean-cast",
|
"clean-cast",
|
||||||
gulp.parallel("clean-translations", function cleanOutputAndBuildDir() {
|
gulp.parallel("clean-translations", function cleanOutputAndBuildDir() {
|
||||||
return del([config.cast_root, config.build_dir]);
|
return del([paths.cast_output_root, paths.build_dir]);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
gulp.task(
|
gulp.task("clean-hassio", function cleanOutputAndBuildDir() {
|
||||||
"clean-hassio",
|
return del([paths.hassio_output_root, paths.build_dir]);
|
||||||
gulp.parallel("clean-translations", function cleanOutputAndBuildDir() {
|
});
|
||||||
return del([config.hassio_root, config.build_dir]);
|
|
||||||
})
|
|
||||||
);
|
|
||||||
|
|
||||||
gulp.task(
|
gulp.task(
|
||||||
"clean-gallery",
|
"clean-gallery",
|
||||||
gulp.parallel("clean-translations", function cleanOutputAndBuildDir() {
|
gulp.parallel("clean-translations", function cleanOutputAndBuildDir() {
|
||||||
return del([config.gallery_root, config.build_dir]);
|
return del([paths.gallery_output_root, paths.build_dir]);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -6,33 +6,40 @@ const merge = require("merge-stream");
|
|||||||
const path = require("path");
|
const path = require("path");
|
||||||
const paths = require("../paths");
|
const paths = require("../paths");
|
||||||
|
|
||||||
|
const zopfliOptions = { threshold: 150 };
|
||||||
|
|
||||||
gulp.task("compress-app", function compressApp() {
|
gulp.task("compress-app", function compressApp() {
|
||||||
const jsLatest = gulp
|
const jsLatest = gulp
|
||||||
.src(path.resolve(paths.output, "**/*.js"))
|
.src(path.resolve(paths.app_output_latest, "**/*.js"))
|
||||||
.pipe(zopfli())
|
.pipe(zopfli(zopfliOptions))
|
||||||
.pipe(gulp.dest(paths.output));
|
.pipe(gulp.dest(paths.app_output_latest));
|
||||||
|
|
||||||
const jsEs5 = gulp
|
const jsEs5 = gulp
|
||||||
.src(path.resolve(paths.output_es5, "**/*.js"))
|
.src(path.resolve(paths.app_output_es5, "**/*.js"))
|
||||||
.pipe(zopfli())
|
.pipe(zopfli(zopfliOptions))
|
||||||
.pipe(gulp.dest(paths.output_es5));
|
.pipe(gulp.dest(paths.app_output_es5));
|
||||||
|
|
||||||
const polyfills = gulp
|
const polyfills = gulp
|
||||||
.src(path.resolve(paths.static, "polyfills/*.js"))
|
.src(path.resolve(paths.app_output_static, "polyfills/*.js"))
|
||||||
.pipe(zopfli())
|
.pipe(zopfli(zopfliOptions))
|
||||||
.pipe(gulp.dest(path.resolve(paths.static, "polyfills")));
|
.pipe(gulp.dest(path.resolve(paths.app_output_static, "polyfills")));
|
||||||
|
|
||||||
const translations = gulp
|
const translations = gulp
|
||||||
.src(path.resolve(paths.static, "translations/*.json"))
|
.src(path.resolve(paths.app_output_static, "translations/**/*.json"))
|
||||||
.pipe(zopfli())
|
.pipe(zopfli(zopfliOptions))
|
||||||
.pipe(gulp.dest(path.resolve(paths.static, "translations")));
|
.pipe(gulp.dest(path.resolve(paths.app_output_static, "translations")));
|
||||||
|
|
||||||
return merge(jsLatest, jsEs5, polyfills, translations);
|
const icons = gulp
|
||||||
|
.src(path.resolve(paths.app_output_static, "mdi/*.json"))
|
||||||
|
.pipe(zopfli(zopfliOptions))
|
||||||
|
.pipe(gulp.dest(path.resolve(paths.app_output_static, "mdi")));
|
||||||
|
|
||||||
|
return merge(jsLatest, jsEs5, polyfills, translations, icons);
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("compress-hassio", function compressApp() {
|
gulp.task("compress-hassio", function compressApp() {
|
||||||
return gulp
|
return gulp
|
||||||
.src(path.resolve(paths.hassio_root, "**/*.js"))
|
.src(path.resolve(paths.hassio_output_root, "**/*.js"))
|
||||||
.pipe(zopfli())
|
.pipe(zopfli(zopfliOptions))
|
||||||
.pipe(gulp.dest(paths.hassio_root));
|
.pipe(gulp.dest(paths.hassio_output_root));
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,13 +1,16 @@
|
|||||||
// Run demo develop mode
|
// Run demo develop mode
|
||||||
const gulp = require("gulp");
|
const gulp = require("gulp");
|
||||||
|
|
||||||
|
const env = require("../env");
|
||||||
|
|
||||||
require("./clean.js");
|
require("./clean.js");
|
||||||
require("./translations.js");
|
require("./translations.js");
|
||||||
require("./gen-icons.js");
|
require("./gen-icons-json.js");
|
||||||
require("./gather-static.js");
|
require("./gather-static.js");
|
||||||
require("./webpack.js");
|
require("./webpack.js");
|
||||||
require("./service-worker.js");
|
require("./service-worker.js");
|
||||||
require("./entry-html.js");
|
require("./entry-html.js");
|
||||||
|
require("./rollup.js");
|
||||||
|
|
||||||
gulp.task(
|
gulp.task(
|
||||||
"develop-demo",
|
"develop-demo",
|
||||||
@@ -17,15 +20,9 @@ gulp.task(
|
|||||||
},
|
},
|
||||||
"clean-demo",
|
"clean-demo",
|
||||||
"translations-enable-merge-backend",
|
"translations-enable-merge-backend",
|
||||||
gulp.parallel(
|
gulp.parallel("gen-icons-json", "gen-index-demo-dev", "build-translations"),
|
||||||
"gen-icons-app",
|
|
||||||
"gen-icons-mdi",
|
|
||||||
"gen-icons-demo",
|
|
||||||
"gen-index-demo-dev",
|
|
||||||
"build-translations"
|
|
||||||
),
|
|
||||||
"copy-static-demo",
|
"copy-static-demo",
|
||||||
"webpack-dev-server-demo"
|
env.useRollup() ? "rollup-dev-server-demo" : "webpack-dev-server-demo"
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -38,14 +35,9 @@ gulp.task(
|
|||||||
"clean-demo",
|
"clean-demo",
|
||||||
// Cast needs to be backwards compatible and older HA has no translations
|
// Cast needs to be backwards compatible and older HA has no translations
|
||||||
"translations-enable-merge-backend",
|
"translations-enable-merge-backend",
|
||||||
gulp.parallel(
|
gulp.parallel("gen-icons-json", "build-translations"),
|
||||||
"gen-icons-app",
|
|
||||||
"gen-icons-mdi",
|
|
||||||
"gen-icons-demo",
|
|
||||||
"build-translations"
|
|
||||||
),
|
|
||||||
"copy-static-demo",
|
"copy-static-demo",
|
||||||
"webpack-prod-demo",
|
env.useRollup() ? "rollup-prod-demo" : "webpack-prod-demo",
|
||||||
"gen-index-demo-prod"
|
"gen-index-demo-prod"
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
const del = require("del");
|
const del = require("del");
|
||||||
const gulp = require("gulp");
|
const gulp = require("gulp");
|
||||||
|
const fs = require("fs");
|
||||||
const mapStream = require("map-stream");
|
const mapStream = require("map-stream");
|
||||||
|
|
||||||
const inDir = "translations/frontend";
|
const inDirFrontend = "translations/frontend";
|
||||||
const downloadDir = inDir + "/downloads";
|
const inDirBackend = "translations/backend";
|
||||||
|
const downloadDir = "translations/downloads";
|
||||||
|
const srcMeta = "src/translations/translationMetadata.json";
|
||||||
|
|
||||||
|
const encoding = "utf8";
|
||||||
|
|
||||||
const tasks = [];
|
const tasks = [];
|
||||||
|
|
||||||
@@ -53,9 +58,25 @@ gulp.task(taskName, function () {
|
|||||||
});
|
});
|
||||||
tasks.push(taskName);
|
tasks.push(taskName);
|
||||||
|
|
||||||
|
taskName = "check-all-files-exist";
|
||||||
|
gulp.task(taskName, function () {
|
||||||
|
const file = fs.readFileSync(srcMeta, { encoding });
|
||||||
|
const meta = JSON.parse(file);
|
||||||
|
Object.keys(meta).forEach((lang) => {
|
||||||
|
if (!fs.existsSync(`${inDirFrontend}/${lang}.json`)) {
|
||||||
|
fs.writeFileSync(`${inDirFrontend}/${lang}.json`, JSON.stringify({}));
|
||||||
|
}
|
||||||
|
if (!fs.existsSync(`${inDirBackend}/${lang}.json`)) {
|
||||||
|
fs.writeFileSync(`${inDirBackend}/${lang}.json`, JSON.stringify({}));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return Promise.resolve();
|
||||||
|
});
|
||||||
|
tasks.push(taskName);
|
||||||
|
|
||||||
taskName = "move-downloaded-translations";
|
taskName = "move-downloaded-translations";
|
||||||
gulp.task(taskName, function () {
|
gulp.task(taskName, function () {
|
||||||
return gulp.src(`${downloadDir}/*.json`).pipe(gulp.dest(inDir));
|
return gulp.src(`${downloadDir}/*.json`).pipe(gulp.dest(inDirFrontend));
|
||||||
});
|
});
|
||||||
tasks.push(taskName);
|
tasks.push(taskName);
|
||||||
|
|
||||||
@@ -65,6 +86,7 @@ gulp.task(
|
|||||||
gulp.series(
|
gulp.series(
|
||||||
"check-translations-html",
|
"check-translations-html",
|
||||||
"move-downloaded-translations",
|
"move-downloaded-translations",
|
||||||
|
"check-all-files-exist",
|
||||||
"clean-downloaded-translations"
|
"clean-downloaded-translations"
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -6,31 +6,37 @@ const fs = require("fs-extra");
|
|||||||
const path = require("path");
|
const path = require("path");
|
||||||
const template = require("lodash.template");
|
const template = require("lodash.template");
|
||||||
const minify = require("html-minifier").minify;
|
const minify = require("html-minifier").minify;
|
||||||
const config = require("../paths.js");
|
const paths = require("../paths.js");
|
||||||
|
const env = require("../env.js");
|
||||||
|
|
||||||
const templatePath = (tpl) =>
|
const templatePath = (tpl) =>
|
||||||
path.resolve(config.polymer_dir, "src/html/", `${tpl}.html.template`);
|
path.resolve(paths.polymer_dir, "src/html/", `${tpl}.html.template`);
|
||||||
|
|
||||||
const readFile = (pth) => fs.readFileSync(pth).toString();
|
const readFile = (pth) => fs.readFileSync(pth).toString();
|
||||||
|
|
||||||
const renderTemplate = (pth, data = {}, pathFunc = templatePath) => {
|
const renderTemplate = (pth, data = {}, pathFunc = templatePath) => {
|
||||||
const compiled = template(readFile(pathFunc(pth)));
|
const compiled = template(readFile(pathFunc(pth)));
|
||||||
return compiled({ ...data, renderTemplate });
|
return compiled({
|
||||||
|
...data,
|
||||||
|
useRollup: env.useRollup(),
|
||||||
|
useWDS: env.useWDS(),
|
||||||
|
renderTemplate,
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const renderDemoTemplate = (pth, data = {}) =>
|
const renderDemoTemplate = (pth, data = {}) =>
|
||||||
renderTemplate(pth, data, (tpl) =>
|
renderTemplate(pth, data, (tpl) =>
|
||||||
path.resolve(config.demo_dir, "src/html/", `${tpl}.html.template`)
|
path.resolve(paths.demo_dir, "src/html/", `${tpl}.html.template`)
|
||||||
);
|
);
|
||||||
|
|
||||||
const renderCastTemplate = (pth, data = {}) =>
|
const renderCastTemplate = (pth, data = {}) =>
|
||||||
renderTemplate(pth, data, (tpl) =>
|
renderTemplate(pth, data, (tpl) =>
|
||||||
path.resolve(config.cast_dir, "src/html/", `${tpl}.html.template`)
|
path.resolve(paths.cast_dir, "src/html/", `${tpl}.html.template`)
|
||||||
);
|
);
|
||||||
|
|
||||||
const renderGalleryTemplate = (pth, data = {}) =>
|
const renderGalleryTemplate = (pth, data = {}) =>
|
||||||
renderTemplate(pth, data, (tpl) =>
|
renderTemplate(pth, data, (tpl) =>
|
||||||
path.resolve(config.gallery_dir, "src/html/", `${tpl}.html.template`)
|
path.resolve(paths.gallery_dir, "src/html/", `${tpl}.html.template`)
|
||||||
);
|
);
|
||||||
|
|
||||||
const minifyHtml = (content) =>
|
const minifyHtml = (content) =>
|
||||||
@@ -47,34 +53,37 @@ gulp.task("gen-pages-dev", (done) => {
|
|||||||
for (const page of PAGES) {
|
for (const page of PAGES) {
|
||||||
const content = renderTemplate(page, {
|
const content = renderTemplate(page, {
|
||||||
latestPageJS: `/frontend_latest/${page}.js`,
|
latestPageJS: `/frontend_latest/${page}.js`,
|
||||||
latestHassIconsJS: "/frontend_latest/hass-icons.js",
|
|
||||||
|
|
||||||
es5Compatibility: "/frontend_es5/compatibility.js",
|
|
||||||
es5PageJS: `/frontend_es5/${page}.js`,
|
es5PageJS: `/frontend_es5/${page}.js`,
|
||||||
es5HassIconsJS: "/frontend_es5/hass-icons.js",
|
|
||||||
});
|
});
|
||||||
|
|
||||||
fs.outputFileSync(path.resolve(config.root, `${page}.html`), content);
|
fs.outputFileSync(
|
||||||
|
path.resolve(paths.app_output_root, `${page}.html`),
|
||||||
|
content
|
||||||
|
);
|
||||||
}
|
}
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("gen-pages-prod", (done) => {
|
gulp.task("gen-pages-prod", (done) => {
|
||||||
const latestManifest = require(path.resolve(config.output, "manifest.json"));
|
const latestManifest = require(path.resolve(
|
||||||
const es5Manifest = require(path.resolve(config.output_es5, "manifest.json"));
|
paths.app_output_latest,
|
||||||
|
"manifest.json"
|
||||||
|
));
|
||||||
|
const es5Manifest = require(path.resolve(
|
||||||
|
paths.app_output_es5,
|
||||||
|
"manifest.json"
|
||||||
|
));
|
||||||
|
|
||||||
for (const page of PAGES) {
|
for (const page of PAGES) {
|
||||||
const content = renderTemplate(page, {
|
const content = renderTemplate(page, {
|
||||||
latestPageJS: latestManifest[`${page}.js`],
|
latestPageJS: latestManifest[`${page}.js`],
|
||||||
latestHassIconsJS: latestManifest["hass-icons.js"],
|
|
||||||
|
|
||||||
es5Compatibility: es5Manifest["compatibility.js"],
|
|
||||||
es5PageJS: es5Manifest[`${page}.js`],
|
es5PageJS: es5Manifest[`${page}.js`],
|
||||||
es5HassIconsJS: es5Manifest["hass-icons.js"],
|
|
||||||
});
|
});
|
||||||
|
|
||||||
fs.outputFileSync(
|
fs.outputFileSync(
|
||||||
path.resolve(config.root, `${page}.html`),
|
path.resolve(paths.app_output_root, `${page}.html`),
|
||||||
minifyHtml(content)
|
minifyHtml(content)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -82,43 +91,57 @@ gulp.task("gen-pages-prod", (done) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("gen-index-app-dev", (done) => {
|
gulp.task("gen-index-app-dev", (done) => {
|
||||||
// In dev mode we don't mangle names, so we hardcode urls. That way we can
|
let latestAppJS, latestCoreJS, latestCustomPanelJS;
|
||||||
// run webpack as last in watch mode, which blocks output.
|
|
||||||
const content = renderTemplate("index", {
|
if (env.useWDS()) {
|
||||||
latestAppJS: "/frontend_latest/app.js",
|
latestAppJS = "http://localhost:8000/src/entrypoints/app.ts";
|
||||||
latestCoreJS: "/frontend_latest/core.js",
|
latestCoreJS = "http://localhost:8000/src/entrypoints/core.ts";
|
||||||
latestCustomPanelJS: "/frontend_latest/custom-panel.js",
|
latestCustomPanelJS =
|
||||||
latestHassIconsJS: "/frontend_latest/hass-icons.js",
|
"http://localhost:8000/src/entrypoints/custom-panel.ts";
|
||||||
|
} else {
|
||||||
|
latestAppJS = "/frontend_latest/app.js";
|
||||||
|
latestCoreJS = "/frontend_latest/core.js";
|
||||||
|
latestCustomPanelJS = "/frontend_latest/custom-panel.js";
|
||||||
|
}
|
||||||
|
|
||||||
|
const content = renderTemplate("index", {
|
||||||
|
latestAppJS,
|
||||||
|
latestCoreJS,
|
||||||
|
latestCustomPanelJS,
|
||||||
|
|
||||||
es5Compatibility: "/frontend_es5/compatibility.js",
|
|
||||||
es5AppJS: "/frontend_es5/app.js",
|
es5AppJS: "/frontend_es5/app.js",
|
||||||
es5CoreJS: "/frontend_es5/core.js",
|
es5CoreJS: "/frontend_es5/core.js",
|
||||||
es5CustomPanelJS: "/frontend_es5/custom-panel.js",
|
es5CustomPanelJS: "/frontend_es5/custom-panel.js",
|
||||||
es5HassIconsJS: "/frontend_es5/hass-icons.js",
|
|
||||||
}).replace(/#THEMEC/g, "{{ theme_color }}");
|
}).replace(/#THEMEC/g, "{{ theme_color }}");
|
||||||
|
|
||||||
fs.outputFileSync(path.resolve(config.root, "index.html"), content);
|
fs.outputFileSync(path.resolve(paths.app_output_root, "index.html"), content);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("gen-index-app-prod", (done) => {
|
gulp.task("gen-index-app-prod", (done) => {
|
||||||
const latestManifest = require(path.resolve(config.output, "manifest.json"));
|
const latestManifest = require(path.resolve(
|
||||||
const es5Manifest = require(path.resolve(config.output_es5, "manifest.json"));
|
paths.app_output_latest,
|
||||||
|
"manifest.json"
|
||||||
|
));
|
||||||
|
const es5Manifest = require(path.resolve(
|
||||||
|
paths.app_output_es5,
|
||||||
|
"manifest.json"
|
||||||
|
));
|
||||||
const content = renderTemplate("index", {
|
const content = renderTemplate("index", {
|
||||||
latestAppJS: latestManifest["app.js"],
|
latestAppJS: latestManifest["app.js"],
|
||||||
latestCoreJS: latestManifest["core.js"],
|
latestCoreJS: latestManifest["core.js"],
|
||||||
latestCustomPanelJS: latestManifest["custom-panel.js"],
|
latestCustomPanelJS: latestManifest["custom-panel.js"],
|
||||||
latestHassIconsJS: latestManifest["hass-icons.js"],
|
|
||||||
|
|
||||||
es5Compatibility: es5Manifest["compatibility.js"],
|
|
||||||
es5AppJS: es5Manifest["app.js"],
|
es5AppJS: es5Manifest["app.js"],
|
||||||
es5CoreJS: es5Manifest["core.js"],
|
es5CoreJS: es5Manifest["core.js"],
|
||||||
es5CustomPanelJS: es5Manifest["custom-panel.js"],
|
es5CustomPanelJS: es5Manifest["custom-panel.js"],
|
||||||
es5HassIconsJS: es5Manifest["hass-icons.js"],
|
|
||||||
});
|
});
|
||||||
const minified = minifyHtml(content).replace(/#THEMEC/g, "{{ theme_color }}");
|
const minified = minifyHtml(content).replace(/#THEMEC/g, "{{ theme_color }}");
|
||||||
|
|
||||||
fs.outputFileSync(path.resolve(config.root, "index.html"), minified);
|
fs.outputFileSync(
|
||||||
|
path.resolve(paths.app_output_root, "index.html"),
|
||||||
|
minified
|
||||||
|
);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -127,7 +150,7 @@ gulp.task("gen-index-cast-dev", (done) => {
|
|||||||
latestReceiverJS: "/frontend_latest/receiver.js",
|
latestReceiverJS: "/frontend_latest/receiver.js",
|
||||||
});
|
});
|
||||||
fs.outputFileSync(
|
fs.outputFileSync(
|
||||||
path.resolve(config.cast_root, "receiver.html"),
|
path.resolve(paths.cast_output_root, "receiver.html"),
|
||||||
contentReceiver
|
contentReceiver
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -135,14 +158,17 @@ gulp.task("gen-index-cast-dev", (done) => {
|
|||||||
latestLauncherJS: "/frontend_latest/launcher.js",
|
latestLauncherJS: "/frontend_latest/launcher.js",
|
||||||
es5LauncherJS: "/frontend_es5/launcher.js",
|
es5LauncherJS: "/frontend_es5/launcher.js",
|
||||||
});
|
});
|
||||||
fs.outputFileSync(path.resolve(config.cast_root, "faq.html"), contentFAQ);
|
fs.outputFileSync(
|
||||||
|
path.resolve(paths.cast_output_root, "faq.html"),
|
||||||
|
contentFAQ
|
||||||
|
);
|
||||||
|
|
||||||
const contentLauncher = renderCastTemplate("launcher", {
|
const contentLauncher = renderCastTemplate("launcher", {
|
||||||
latestLauncherJS: "/frontend_latest/launcher.js",
|
latestLauncherJS: "/frontend_latest/launcher.js",
|
||||||
es5LauncherJS: "/frontend_es5/launcher.js",
|
es5LauncherJS: "/frontend_es5/launcher.js",
|
||||||
});
|
});
|
||||||
fs.outputFileSync(
|
fs.outputFileSync(
|
||||||
path.resolve(config.cast_root, "index.html"),
|
path.resolve(paths.cast_output_root, "index.html"),
|
||||||
contentLauncher
|
contentLauncher
|
||||||
);
|
);
|
||||||
done();
|
done();
|
||||||
@@ -150,11 +176,11 @@ gulp.task("gen-index-cast-dev", (done) => {
|
|||||||
|
|
||||||
gulp.task("gen-index-cast-prod", (done) => {
|
gulp.task("gen-index-cast-prod", (done) => {
|
||||||
const latestManifest = require(path.resolve(
|
const latestManifest = require(path.resolve(
|
||||||
config.cast_output,
|
paths.cast_output_latest,
|
||||||
"manifest.json"
|
"manifest.json"
|
||||||
));
|
));
|
||||||
const es5Manifest = require(path.resolve(
|
const es5Manifest = require(path.resolve(
|
||||||
config.cast_output_es5,
|
paths.cast_output_es5,
|
||||||
"manifest.json"
|
"manifest.json"
|
||||||
));
|
));
|
||||||
|
|
||||||
@@ -162,7 +188,7 @@ gulp.task("gen-index-cast-prod", (done) => {
|
|||||||
latestReceiverJS: latestManifest["receiver.js"],
|
latestReceiverJS: latestManifest["receiver.js"],
|
||||||
});
|
});
|
||||||
fs.outputFileSync(
|
fs.outputFileSync(
|
||||||
path.resolve(config.cast_root, "receiver.html"),
|
path.resolve(paths.cast_output_root, "receiver.html"),
|
||||||
contentReceiver
|
contentReceiver
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -170,68 +196,74 @@ gulp.task("gen-index-cast-prod", (done) => {
|
|||||||
latestLauncherJS: latestManifest["launcher.js"],
|
latestLauncherJS: latestManifest["launcher.js"],
|
||||||
es5LauncherJS: es5Manifest["launcher.js"],
|
es5LauncherJS: es5Manifest["launcher.js"],
|
||||||
});
|
});
|
||||||
fs.outputFileSync(path.resolve(config.cast_root, "faq.html"), contentFAQ);
|
fs.outputFileSync(
|
||||||
|
path.resolve(paths.cast_output_root, "faq.html"),
|
||||||
|
contentFAQ
|
||||||
|
);
|
||||||
|
|
||||||
const contentLauncher = renderCastTemplate("launcher", {
|
const contentLauncher = renderCastTemplate("launcher", {
|
||||||
latestLauncherJS: latestManifest["launcher.js"],
|
latestLauncherJS: latestManifest["launcher.js"],
|
||||||
es5LauncherJS: es5Manifest["launcher.js"],
|
es5LauncherJS: es5Manifest["launcher.js"],
|
||||||
});
|
});
|
||||||
fs.outputFileSync(
|
fs.outputFileSync(
|
||||||
path.resolve(config.cast_root, "index.html"),
|
path.resolve(paths.cast_output_root, "index.html"),
|
||||||
contentLauncher
|
contentLauncher
|
||||||
);
|
);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("gen-index-demo-dev", (done) => {
|
gulp.task("gen-index-demo-dev", (done) => {
|
||||||
// In dev mode we don't mangle names, so we hardcode urls. That way we can
|
|
||||||
// run webpack as last in watch mode, which blocks output.
|
|
||||||
const content = renderDemoTemplate("index", {
|
const content = renderDemoTemplate("index", {
|
||||||
latestDemoJS: "/frontend_latest/main.js",
|
latestDemoJS: "/frontend_latest/main.js",
|
||||||
|
|
||||||
es5Compatibility: "/frontend_es5/compatibility.js",
|
|
||||||
es5DemoJS: "/frontend_es5/main.js",
|
es5DemoJS: "/frontend_es5/main.js",
|
||||||
});
|
});
|
||||||
|
|
||||||
fs.outputFileSync(path.resolve(config.demo_root, "index.html"), content);
|
fs.outputFileSync(
|
||||||
|
path.resolve(paths.demo_output_root, "index.html"),
|
||||||
|
content
|
||||||
|
);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("gen-index-demo-prod", (done) => {
|
gulp.task("gen-index-demo-prod", (done) => {
|
||||||
const latestManifest = require(path.resolve(
|
const latestManifest = require(path.resolve(
|
||||||
config.demo_output,
|
paths.demo_output_latest,
|
||||||
"manifest.json"
|
"manifest.json"
|
||||||
));
|
));
|
||||||
const es5Manifest = require(path.resolve(
|
const es5Manifest = require(path.resolve(
|
||||||
config.demo_output_es5,
|
paths.demo_output_es5,
|
||||||
"manifest.json"
|
"manifest.json"
|
||||||
));
|
));
|
||||||
const content = renderDemoTemplate("index", {
|
const content = renderDemoTemplate("index", {
|
||||||
latestDemoJS: latestManifest["main.js"],
|
latestDemoJS: latestManifest["main.js"],
|
||||||
|
|
||||||
es5Compatibility: es5Manifest["compatibility.js"],
|
|
||||||
es5DemoJS: es5Manifest["main.js"],
|
es5DemoJS: es5Manifest["main.js"],
|
||||||
});
|
});
|
||||||
const minified = minifyHtml(content);
|
const minified = minifyHtml(content);
|
||||||
|
|
||||||
fs.outputFileSync(path.resolve(config.demo_root, "index.html"), minified);
|
fs.outputFileSync(
|
||||||
|
path.resolve(paths.demo_output_root, "index.html"),
|
||||||
|
minified
|
||||||
|
);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("gen-index-gallery-dev", (done) => {
|
gulp.task("gen-index-gallery-dev", (done) => {
|
||||||
// In dev mode we don't mangle names, so we hardcode urls. That way we can
|
|
||||||
// run webpack as last in watch mode, which blocks output.
|
|
||||||
const content = renderGalleryTemplate("index", {
|
const content = renderGalleryTemplate("index", {
|
||||||
latestGalleryJS: "./frontend_latest/entrypoint.js",
|
latestGalleryJS: "./frontend_latest/entrypoint.js",
|
||||||
});
|
});
|
||||||
|
|
||||||
fs.outputFileSync(path.resolve(config.gallery_root, "index.html"), content);
|
fs.outputFileSync(
|
||||||
|
path.resolve(paths.gallery_output_root, "index.html"),
|
||||||
|
content
|
||||||
|
);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("gen-index-gallery-prod", (done) => {
|
gulp.task("gen-index-gallery-prod", (done) => {
|
||||||
const latestManifest = require(path.resolve(
|
const latestManifest = require(path.resolve(
|
||||||
config.gallery_output,
|
paths.gallery_output_latest,
|
||||||
"manifest.json"
|
"manifest.json"
|
||||||
));
|
));
|
||||||
const content = renderGalleryTemplate("index", {
|
const content = renderGalleryTemplate("index", {
|
||||||
@@ -239,6 +271,48 @@ gulp.task("gen-index-gallery-prod", (done) => {
|
|||||||
});
|
});
|
||||||
const minified = minifyHtml(content);
|
const minified = minifyHtml(content);
|
||||||
|
|
||||||
fs.outputFileSync(path.resolve(config.gallery_root, "index.html"), minified);
|
fs.outputFileSync(
|
||||||
|
path.resolve(paths.gallery_output_root, "index.html"),
|
||||||
|
minified
|
||||||
|
);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
gulp.task("gen-index-hassio-dev", async () => {
|
||||||
|
writeHassioEntrypoint(
|
||||||
|
`${paths.hassio_publicPath}/frontend_latest/entrypoint.js`,
|
||||||
|
`${paths.hassio_publicPath}/frontend_es5/entrypoint.js`
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task("gen-index-hassio-prod", async () => {
|
||||||
|
const latestManifest = require(path.resolve(
|
||||||
|
paths.hassio_output_latest,
|
||||||
|
"manifest.json"
|
||||||
|
));
|
||||||
|
const es5Manifest = require(path.resolve(
|
||||||
|
paths.hassio_output_es5,
|
||||||
|
"manifest.json"
|
||||||
|
));
|
||||||
|
writeHassioEntrypoint(
|
||||||
|
latestManifest["entrypoint.js"],
|
||||||
|
es5Manifest["entrypoint.js"]
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
function writeHassioEntrypoint(latestEntrypoint, es5Entrypoint) {
|
||||||
|
fs.mkdirSync(paths.hassio_output_root, { recursive: true });
|
||||||
|
fs.writeFileSync(
|
||||||
|
path.resolve(paths.hassio_output_root, "entrypoint.js"),
|
||||||
|
`
|
||||||
|
try {
|
||||||
|
new Function("import('${latestEntrypoint}')")();
|
||||||
|
} catch (err) {
|
||||||
|
var el = document.createElement('script');
|
||||||
|
el.src = '${es5Entrypoint}';
|
||||||
|
document.body.appendChild(el);
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
{ encoding: "utf-8" }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,13 +1,44 @@
|
|||||||
// Run demo develop mode
|
// Run demo develop mode
|
||||||
const gulp = require("gulp");
|
const gulp = require("gulp");
|
||||||
|
const fs = require("fs");
|
||||||
|
const path = require("path");
|
||||||
|
|
||||||
|
const env = require("../env");
|
||||||
|
const paths = require("../paths");
|
||||||
|
|
||||||
require("./clean.js");
|
require("./clean.js");
|
||||||
require("./translations.js");
|
require("./translations.js");
|
||||||
require("./gen-icons.js");
|
require("./gen-icons-json.js");
|
||||||
require("./gather-static.js");
|
require("./gather-static.js");
|
||||||
require("./webpack.js");
|
require("./webpack.js");
|
||||||
require("./service-worker.js");
|
require("./service-worker.js");
|
||||||
require("./entry-html.js");
|
require("./entry-html.js");
|
||||||
|
require("./rollup.js");
|
||||||
|
|
||||||
|
gulp.task("gather-gallery-demos", async function gatherDemos() {
|
||||||
|
const files = await fs.promises.readdir(
|
||||||
|
path.resolve(paths.gallery_dir, "src/demos")
|
||||||
|
);
|
||||||
|
|
||||||
|
let content = "export const DEMOS = {\n";
|
||||||
|
|
||||||
|
for (const file of files) {
|
||||||
|
const demoId = path.basename(file, ".ts");
|
||||||
|
const demoPath = "../src/demos/" + demoId;
|
||||||
|
content += ` "${demoId}": () => import("${demoPath}"),\n`;
|
||||||
|
}
|
||||||
|
|
||||||
|
content += "};";
|
||||||
|
|
||||||
|
const galleryBuild = path.resolve(paths.gallery_dir, "build");
|
||||||
|
|
||||||
|
fs.mkdirSync(galleryBuild, { recursive: true });
|
||||||
|
fs.writeFileSync(
|
||||||
|
path.resolve(galleryBuild, "import-demos.ts"),
|
||||||
|
content,
|
||||||
|
"utf-8"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
gulp.task(
|
gulp.task(
|
||||||
"develop-gallery",
|
"develop-gallery",
|
||||||
@@ -17,10 +48,14 @@ gulp.task(
|
|||||||
},
|
},
|
||||||
"clean-gallery",
|
"clean-gallery",
|
||||||
"translations-enable-merge-backend",
|
"translations-enable-merge-backend",
|
||||||
gulp.parallel("gen-icons-app", "gen-icons-mdi", "build-translations"),
|
gulp.parallel(
|
||||||
|
"gen-icons-json",
|
||||||
|
"build-translations",
|
||||||
|
"gather-gallery-demos"
|
||||||
|
),
|
||||||
"copy-static-gallery",
|
"copy-static-gallery",
|
||||||
"gen-index-gallery-dev",
|
"gen-index-gallery-dev",
|
||||||
"webpack-dev-server-gallery"
|
env.useRollup() ? "rollup-dev-server-gallery" : "webpack-dev-server-gallery"
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -32,9 +67,13 @@ gulp.task(
|
|||||||
},
|
},
|
||||||
"clean-gallery",
|
"clean-gallery",
|
||||||
"translations-enable-merge-backend",
|
"translations-enable-merge-backend",
|
||||||
gulp.parallel("gen-icons-app", "gen-icons-mdi", "build-translations"),
|
gulp.parallel(
|
||||||
|
"gen-icons-json",
|
||||||
|
"build-translations",
|
||||||
|
"gather-gallery-demos"
|
||||||
|
),
|
||||||
"copy-static-gallery",
|
"copy-static-gallery",
|
||||||
"webpack-prod-gallery",
|
env.useRollup() ? "rollup-prod-gallery" : "webpack-prod-gallery",
|
||||||
"gen-index-gallery-prod"
|
"gen-index-gallery-prod"
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -26,14 +26,23 @@ function copyTranslations(staticDir) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function copyMdiIcons(staticDir) {
|
||||||
|
const staticPath = genStaticPath(staticDir);
|
||||||
|
|
||||||
|
// MDI icons output
|
||||||
|
fs.copySync(polyPath("build/mdi"), staticPath("mdi"));
|
||||||
|
}
|
||||||
|
|
||||||
function copyPolyfills(staticDir) {
|
function copyPolyfills(staticDir) {
|
||||||
const staticPath = genStaticPath(staticDir);
|
const staticPath = genStaticPath(staticDir);
|
||||||
|
|
||||||
// Web Component polyfills and adapters
|
// For custom panels using ES5 builds that don't use Babel 7+
|
||||||
copyFileDir(
|
copyFileDir(
|
||||||
npmPath("@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js"),
|
npmPath("@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js"),
|
||||||
staticPath("polyfills/")
|
staticPath("polyfills/")
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Web Component polyfills and adapters
|
||||||
copyFileDir(
|
copyFileDir(
|
||||||
npmPath("@webcomponents/webcomponentsjs/webcomponents-bundle.js"),
|
npmPath("@webcomponents/webcomponentsjs/webcomponents-bundle.js"),
|
||||||
staticPath("polyfills/")
|
staticPath("polyfills/")
|
||||||
@@ -44,6 +53,12 @@ function copyPolyfills(staticDir) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function copyLoaderJS(staticDir) {
|
||||||
|
const staticPath = genStaticPath(staticDir);
|
||||||
|
copyFileDir(npmPath("systemjs/dist/s.min.js"), staticPath("js"));
|
||||||
|
copyFileDir(npmPath("systemjs/dist/s.min.js.map"), staticPath("js"));
|
||||||
|
}
|
||||||
|
|
||||||
function copyFonts(staticDir) {
|
function copyFonts(staticDir) {
|
||||||
const staticPath = genStaticPath(staticDir);
|
const staticPath = genStaticPath(staticDir);
|
||||||
// Local fonts
|
// Local fonts
|
||||||
@@ -65,67 +80,68 @@ function copyMapPanel(staticDir) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
gulp.task("copy-translations", (done) => {
|
gulp.task("copy-translations-app", async () => {
|
||||||
const staticDir = paths.static;
|
const staticDir = paths.app_output_static;
|
||||||
copyTranslations(staticDir);
|
copyTranslations(staticDir);
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("copy-static", (done) => {
|
gulp.task("copy-static-app", async () => {
|
||||||
const staticDir = paths.static;
|
const staticDir = paths.app_output_static;
|
||||||
const staticPath = genStaticPath(paths.static);
|
|
||||||
// Basic static files
|
// Basic static files
|
||||||
fs.copySync(polyPath("public"), paths.root);
|
fs.copySync(polyPath("public"), paths.app_output_root);
|
||||||
|
|
||||||
|
copyLoaderJS(staticDir);
|
||||||
copyPolyfills(staticDir);
|
copyPolyfills(staticDir);
|
||||||
copyFonts(staticDir);
|
copyFonts(staticDir);
|
||||||
copyTranslations(staticDir);
|
copyTranslations(staticDir);
|
||||||
|
copyMdiIcons(staticDir);
|
||||||
|
|
||||||
// Panel assets
|
// Panel assets
|
||||||
copyFileDir(
|
|
||||||
npmPath("react-big-calendar/lib/css/react-big-calendar.css"),
|
|
||||||
staticPath("panels/calendar/")
|
|
||||||
);
|
|
||||||
copyMapPanel(staticDir);
|
copyMapPanel(staticDir);
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("copy-static-demo", (done) => {
|
gulp.task("copy-static-demo", async () => {
|
||||||
// Copy app static files
|
// Copy app static files
|
||||||
fs.copySync(
|
fs.copySync(
|
||||||
polyPath("public/static"),
|
polyPath("public/static"),
|
||||||
path.resolve(paths.demo_root, "static")
|
path.resolve(paths.demo_output_root, "static")
|
||||||
);
|
);
|
||||||
// Copy demo static files
|
// Copy demo static files
|
||||||
fs.copySync(path.resolve(paths.demo_dir, "public"), paths.demo_root);
|
fs.copySync(path.resolve(paths.demo_dir, "public"), paths.demo_output_root);
|
||||||
|
|
||||||
copyPolyfills(paths.demo_static);
|
copyLoaderJS(paths.demo_output_static);
|
||||||
copyMapPanel(paths.demo_static);
|
copyPolyfills(paths.demo_output_static);
|
||||||
copyFonts(paths.demo_static);
|
copyMapPanel(paths.demo_output_static);
|
||||||
copyTranslations(paths.demo_static);
|
copyFonts(paths.demo_output_static);
|
||||||
done();
|
copyTranslations(paths.demo_output_static);
|
||||||
|
copyMdiIcons(paths.demo_output_static);
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("copy-static-cast", (done) => {
|
gulp.task("copy-static-cast", async () => {
|
||||||
// Copy app static files
|
// Copy app static files
|
||||||
fs.copySync(polyPath("public/static"), paths.cast_static);
|
fs.copySync(polyPath("public/static"), paths.cast_output_static);
|
||||||
// Copy cast static files
|
// Copy cast static files
|
||||||
fs.copySync(path.resolve(paths.cast_dir, "public"), paths.cast_root);
|
fs.copySync(path.resolve(paths.cast_dir, "public"), paths.cast_output_root);
|
||||||
|
|
||||||
copyMapPanel(paths.cast_static);
|
copyLoaderJS(paths.cast_output_static);
|
||||||
copyFonts(paths.cast_static);
|
copyPolyfills(paths.cast_output_static);
|
||||||
copyTranslations(paths.cast_static);
|
copyMapPanel(paths.cast_output_static);
|
||||||
done();
|
copyFonts(paths.cast_output_static);
|
||||||
|
copyTranslations(paths.cast_output_static);
|
||||||
|
copyMdiIcons(paths.cast_output_static);
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("copy-static-gallery", (done) => {
|
gulp.task("copy-static-gallery", async () => {
|
||||||
// Copy app static files
|
// Copy app static files
|
||||||
fs.copySync(polyPath("public/static"), paths.gallery_static);
|
fs.copySync(polyPath("public/static"), paths.gallery_output_static);
|
||||||
// Copy gallery static files
|
// Copy gallery static files
|
||||||
fs.copySync(path.resolve(paths.gallery_dir, "public"), paths.gallery_root);
|
fs.copySync(
|
||||||
|
path.resolve(paths.gallery_dir, "public"),
|
||||||
|
paths.gallery_output_root
|
||||||
|
);
|
||||||
|
|
||||||
copyMapPanel(paths.gallery_static);
|
copyMapPanel(paths.gallery_output_static);
|
||||||
copyFonts(paths.gallery_static);
|
copyFonts(paths.gallery_output_static);
|
||||||
copyTranslations(paths.gallery_static);
|
copyTranslations(paths.gallery_output_static);
|
||||||
done();
|
copyMdiIcons(paths.gallery_output_static);
|
||||||
});
|
});
|
||||||
|
|||||||
120
build-scripts/gulp/gen-icons-json.js
Normal file
120
build-scripts/gulp/gen-icons-json.js
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
const gulp = require("gulp");
|
||||||
|
const path = require("path");
|
||||||
|
const fs = require("fs");
|
||||||
|
const hash = require("object-hash");
|
||||||
|
|
||||||
|
const ICON_PACKAGE_PATH = path.resolve(
|
||||||
|
__dirname,
|
||||||
|
"../../node_modules/@mdi/svg/"
|
||||||
|
);
|
||||||
|
const META_PATH = path.resolve(ICON_PACKAGE_PATH, "meta.json");
|
||||||
|
const PACKAGE_PATH = path.resolve(ICON_PACKAGE_PATH, "package.json");
|
||||||
|
const ICON_PATH = path.resolve(ICON_PACKAGE_PATH, "svg");
|
||||||
|
const OUTPUT_DIR = path.resolve(__dirname, "../../build/mdi");
|
||||||
|
const REMOVED_ICONS_PATH = path.resolve(__dirname, "../removedIcons.json");
|
||||||
|
|
||||||
|
const encoding = "utf8";
|
||||||
|
|
||||||
|
const getMeta = () => {
|
||||||
|
const file = fs.readFileSync(META_PATH, { encoding });
|
||||||
|
const meta = JSON.parse(file);
|
||||||
|
return meta.map((icon) => {
|
||||||
|
const svg = fs.readFileSync(`${ICON_PATH}/${icon.name}.svg`, {
|
||||||
|
encoding,
|
||||||
|
});
|
||||||
|
return { path: svg.match(/ d="([^"]+)"/)[1], name: icon.name };
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const addRemovedMeta = (meta) => {
|
||||||
|
const file = fs.readFileSync(REMOVED_ICONS_PATH, { encoding });
|
||||||
|
const removed = JSON.parse(file);
|
||||||
|
const combinedMeta = [...meta, ...removed];
|
||||||
|
return combinedMeta.sort((a, b) => a.name.localeCompare(b.name));
|
||||||
|
};
|
||||||
|
|
||||||
|
const splitBySize = (meta) => {
|
||||||
|
const chunks = [];
|
||||||
|
const CHUNK_SIZE = 50000;
|
||||||
|
|
||||||
|
let curSize = 0;
|
||||||
|
let startKey;
|
||||||
|
let icons = [];
|
||||||
|
|
||||||
|
Object.values(meta).forEach((icon) => {
|
||||||
|
if (startKey === undefined) {
|
||||||
|
startKey = icon.name;
|
||||||
|
}
|
||||||
|
curSize += icon.path.length;
|
||||||
|
icons.push(icon);
|
||||||
|
if (curSize > CHUNK_SIZE) {
|
||||||
|
chunks.push({
|
||||||
|
startKey,
|
||||||
|
endKey: icon.name,
|
||||||
|
icons,
|
||||||
|
});
|
||||||
|
curSize = 0;
|
||||||
|
startKey = undefined;
|
||||||
|
icons = [];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
chunks.push({
|
||||||
|
startKey,
|
||||||
|
icons,
|
||||||
|
});
|
||||||
|
|
||||||
|
return chunks;
|
||||||
|
};
|
||||||
|
|
||||||
|
const findDifferentiator = (curString, prevString) => {
|
||||||
|
for (let i = 0; i < curString.length; i++) {
|
||||||
|
if (curString[i] !== prevString[i]) {
|
||||||
|
return curString.substring(0, i + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new Error("Cannot find differentiator", curString, prevString);
|
||||||
|
};
|
||||||
|
|
||||||
|
gulp.task("gen-icons-json", (done) => {
|
||||||
|
const meta = addRemovedMeta(getMeta());
|
||||||
|
const split = splitBySize(meta);
|
||||||
|
|
||||||
|
if (!fs.existsSync(OUTPUT_DIR)) {
|
||||||
|
fs.mkdirSync(OUTPUT_DIR, { recursive: true });
|
||||||
|
}
|
||||||
|
const parts = [];
|
||||||
|
|
||||||
|
let lastEnd;
|
||||||
|
split.forEach((chunk) => {
|
||||||
|
let startKey;
|
||||||
|
if (lastEnd === undefined) {
|
||||||
|
chunk.startKey = undefined;
|
||||||
|
startKey = undefined;
|
||||||
|
} else {
|
||||||
|
startKey = findDifferentiator(chunk.startKey, lastEnd);
|
||||||
|
}
|
||||||
|
lastEnd = chunk.endKey;
|
||||||
|
|
||||||
|
const output = {};
|
||||||
|
chunk.icons.forEach((icon) => {
|
||||||
|
output[icon.name] = icon.path;
|
||||||
|
});
|
||||||
|
const filename = hash(output);
|
||||||
|
parts.push({ start: startKey, file: filename });
|
||||||
|
fs.writeFileSync(
|
||||||
|
path.resolve(OUTPUT_DIR, `${filename}.json`),
|
||||||
|
JSON.stringify(output)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
const file = fs.readFileSync(PACKAGE_PATH, { encoding });
|
||||||
|
const package = JSON.parse(file);
|
||||||
|
|
||||||
|
fs.writeFileSync(
|
||||||
|
path.resolve(OUTPUT_DIR, "iconMetadata.json"),
|
||||||
|
JSON.stringify({ version: package.version, parts })
|
||||||
|
);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
@@ -1,127 +0,0 @@
|
|||||||
const gulp = require("gulp");
|
|
||||||
const path = require("path");
|
|
||||||
const fs = require("fs");
|
|
||||||
const paths = require("../paths");
|
|
||||||
const { mapFiles } = require("../util");
|
|
||||||
|
|
||||||
const ICON_PACKAGE_PATH = path.resolve(
|
|
||||||
__dirname,
|
|
||||||
"../../node_modules/@mdi/svg/"
|
|
||||||
);
|
|
||||||
const META_PATH = path.resolve(ICON_PACKAGE_PATH, "meta.json");
|
|
||||||
const ICON_PATH = path.resolve(ICON_PACKAGE_PATH, "svg");
|
|
||||||
const OUTPUT_DIR = path.resolve(__dirname, "../../build");
|
|
||||||
const MDI_OUTPUT_PATH = path.resolve(OUTPUT_DIR, "mdi.html");
|
|
||||||
const HASS_OUTPUT_PATH = path.resolve(OUTPUT_DIR, "hass-icons.html");
|
|
||||||
|
|
||||||
const BUILT_IN_PANEL_ICONS = [
|
|
||||||
"calendar", // Calendar
|
|
||||||
"settings", // Config
|
|
||||||
"home-assistant", // Hass.io
|
|
||||||
"poll-box", // History panel
|
|
||||||
"format-list-bulleted-type", // Logbook
|
|
||||||
"mailbox", // Mailbox
|
|
||||||
"tooltip-account", // Map
|
|
||||||
"cart", // Shopping List
|
|
||||||
"hammer", // developer-tools
|
|
||||||
];
|
|
||||||
|
|
||||||
// Given an icon name, load the SVG file
|
|
||||||
function loadIcon(name) {
|
|
||||||
const iconPath = path.resolve(ICON_PATH, `${name}.svg`);
|
|
||||||
try {
|
|
||||||
return fs.readFileSync(iconPath, "utf-8");
|
|
||||||
} catch (err) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Given an SVG file, convert it to an iron-iconset-svg definition
|
|
||||||
function transformXMLtoPolymer(name, xml) {
|
|
||||||
const start = xml.indexOf("><path") + 1;
|
|
||||||
const end = xml.length - start - 6;
|
|
||||||
const pth = xml.substr(start, end);
|
|
||||||
return `<g id="${name}">${pth}</g>`;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Given an iconset name and icon names, generate a polymer iconset
|
|
||||||
function generateIconset(iconsetName, iconNames) {
|
|
||||||
const iconDefs = Array.from(iconNames)
|
|
||||||
.map((name) => {
|
|
||||||
const iconDef = loadIcon(name);
|
|
||||||
if (!iconDef) {
|
|
||||||
throw new Error(`Unknown icon referenced: ${name}`);
|
|
||||||
}
|
|
||||||
return transformXMLtoPolymer(name, iconDef);
|
|
||||||
})
|
|
||||||
.join("");
|
|
||||||
return `<ha-iconset-svg name="${iconsetName}" size="24"><svg><defs>${iconDefs}</defs></svg></ha-iconset-svg>`;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Find all icons used by the project.
|
|
||||||
function findIcons(searchPath, iconsetName) {
|
|
||||||
const iconRegex = new RegExp(`${iconsetName}:[\\w-]+`, "g");
|
|
||||||
const icons = new Set();
|
|
||||||
function processFile(filename) {
|
|
||||||
const content = fs.readFileSync(filename);
|
|
||||||
let match;
|
|
||||||
// eslint-disable-next-line
|
|
||||||
while ((match = iconRegex.exec(content))) {
|
|
||||||
// strip off "hass:" and add to set
|
|
||||||
icons.add(match[0].substr(iconsetName.length + 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mapFiles(searchPath, ".js", processFile);
|
|
||||||
mapFiles(searchPath, ".ts", processFile);
|
|
||||||
return icons;
|
|
||||||
}
|
|
||||||
|
|
||||||
gulp.task("gen-icons-mdi", (done) => {
|
|
||||||
const meta = JSON.parse(
|
|
||||||
fs.readFileSync(path.resolve(ICON_PACKAGE_PATH, META_PATH), "UTF-8")
|
|
||||||
);
|
|
||||||
const iconNames = meta.map((iconInfo) => iconInfo.name);
|
|
||||||
if (!fs.existsSync(OUTPUT_DIR)) {
|
|
||||||
fs.mkdirSync(OUTPUT_DIR);
|
|
||||||
}
|
|
||||||
fs.writeFileSync(MDI_OUTPUT_PATH, generateIconset("mdi", iconNames));
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task("gen-icons-app", (done) => {
|
|
||||||
const iconNames = findIcons("./src", "hass");
|
|
||||||
BUILT_IN_PANEL_ICONS.forEach((name) => iconNames.add(name));
|
|
||||||
if (!fs.existsSync(OUTPUT_DIR)) {
|
|
||||||
fs.mkdirSync(OUTPUT_DIR);
|
|
||||||
}
|
|
||||||
fs.writeFileSync(HASS_OUTPUT_PATH, generateIconset("hass", iconNames));
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task("gen-icons-demo", (done) => {
|
|
||||||
const iconNames = findIcons(path.resolve(paths.demo_dir, "./src"), "hademo");
|
|
||||||
fs.writeFileSync(
|
|
||||||
path.resolve(paths.demo_dir, "hademo-icons.html"),
|
|
||||||
generateIconset("hademo", iconNames)
|
|
||||||
);
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task("gen-icons-hassio", (done) => {
|
|
||||||
const iconNames = findIcons(
|
|
||||||
path.resolve(paths.hassio_dir, "./src"),
|
|
||||||
"hassio"
|
|
||||||
);
|
|
||||||
// Find hassio icons inside HA main repo.
|
|
||||||
for (const item of findIcons(
|
|
||||||
path.resolve(paths.polymer_dir, "./src"),
|
|
||||||
"hassio"
|
|
||||||
)) {
|
|
||||||
iconNames.add(item);
|
|
||||||
}
|
|
||||||
fs.writeFileSync(
|
|
||||||
path.resolve(paths.hassio_dir, "hassio-icons.html"),
|
|
||||||
generateIconset("hassio", iconNames)
|
|
||||||
);
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
@@ -1,11 +1,15 @@
|
|||||||
const gulp = require("gulp");
|
const gulp = require("gulp");
|
||||||
|
const fs = require("fs");
|
||||||
|
const path = require("path");
|
||||||
|
|
||||||
const envVars = require("../env");
|
const env = require("../env");
|
||||||
|
const paths = require("../paths");
|
||||||
|
|
||||||
require("./clean.js");
|
require("./clean.js");
|
||||||
require("./gen-icons.js");
|
require("./gen-icons-json.js");
|
||||||
require("./webpack.js");
|
require("./webpack.js");
|
||||||
require("./compress.js");
|
require("./compress.js");
|
||||||
|
require("./rollup.js");
|
||||||
|
|
||||||
gulp.task(
|
gulp.task(
|
||||||
"develop-hassio",
|
"develop-hassio",
|
||||||
@@ -14,8 +18,9 @@ gulp.task(
|
|||||||
process.env.NODE_ENV = "development";
|
process.env.NODE_ENV = "development";
|
||||||
},
|
},
|
||||||
"clean-hassio",
|
"clean-hassio",
|
||||||
gulp.parallel("gen-icons-hassio", "gen-icons-mdi"),
|
"gen-icons-json",
|
||||||
"webpack-watch-hassio"
|
"gen-index-hassio-dev",
|
||||||
|
env.useRollup() ? "rollup-watch-hassio" : "webpack-watch-hassio"
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -26,9 +31,10 @@ gulp.task(
|
|||||||
process.env.NODE_ENV = "production";
|
process.env.NODE_ENV = "production";
|
||||||
},
|
},
|
||||||
"clean-hassio",
|
"clean-hassio",
|
||||||
gulp.parallel("gen-icons-hassio", "gen-icons-mdi"),
|
"gen-icons-json",
|
||||||
"webpack-prod-hassio",
|
env.useRollup() ? "rollup-prod-hassio" : "webpack-prod-hassio",
|
||||||
|
"gen-index-hassio-prod",
|
||||||
...// Don't compress running tests
|
...// Don't compress running tests
|
||||||
(envVars.isTravis() ? [] : ["compress-hassio"])
|
(env.isTest() ? [] : ["compress-hassio"])
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
146
build-scripts/gulp/rollup.js
Normal file
146
build-scripts/gulp/rollup.js
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
// Tasks to run Rollup
|
||||||
|
const path = require("path");
|
||||||
|
const gulp = require("gulp");
|
||||||
|
const rollup = require("rollup");
|
||||||
|
const handler = require("serve-handler");
|
||||||
|
const http = require("http");
|
||||||
|
const log = require("fancy-log");
|
||||||
|
const rollupConfig = require("../rollup");
|
||||||
|
const paths = require("../paths");
|
||||||
|
const open = require("open");
|
||||||
|
|
||||||
|
const bothBuilds = (createConfigFunc, params) =>
|
||||||
|
gulp.series(
|
||||||
|
async function buildLatest() {
|
||||||
|
await buildRollup(
|
||||||
|
createConfigFunc({
|
||||||
|
...params,
|
||||||
|
latestBuild: true,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
},
|
||||||
|
async function buildES5() {
|
||||||
|
await buildRollup(
|
||||||
|
createConfigFunc({
|
||||||
|
...params,
|
||||||
|
latestBuild: false,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
function createServer(serveOptions) {
|
||||||
|
const server = http.createServer((request, response) => {
|
||||||
|
return handler(request, response, {
|
||||||
|
public: serveOptions.root,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
server.listen(
|
||||||
|
serveOptions.port,
|
||||||
|
serveOptions.networkAccess ? "0.0.0.0" : undefined,
|
||||||
|
() => {
|
||||||
|
log.info(`Available at http://localhost:${serveOptions.port}`);
|
||||||
|
open(`http://localhost:${serveOptions.port}`);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function watchRollup(createConfig, extraWatchSrc = [], serveOptions) {
|
||||||
|
const { inputOptions, outputOptions } = createConfig({
|
||||||
|
isProdBuild: false,
|
||||||
|
latestBuild: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
const watcher = rollup.watch({
|
||||||
|
...inputOptions,
|
||||||
|
output: [outputOptions],
|
||||||
|
watch: {
|
||||||
|
include: ["src/**"] + extraWatchSrc,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
let startedHttp = false;
|
||||||
|
|
||||||
|
watcher.on("event", (event) => {
|
||||||
|
if (event.code === "BUNDLE_END") {
|
||||||
|
log(`Build done @ ${new Date().toLocaleTimeString()}`);
|
||||||
|
} else if (event.code === "ERROR") {
|
||||||
|
log.error(event.error);
|
||||||
|
} else if (event.code === "END") {
|
||||||
|
if (startedHttp || !serveOptions) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
startedHttp = true;
|
||||||
|
createServer(serveOptions);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.watch(
|
||||||
|
path.join(paths.translations_src, "en.json"),
|
||||||
|
gulp.series("build-translations", "copy-translations-app")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function buildRollup(config) {
|
||||||
|
const bundle = await rollup.rollup(config.inputOptions);
|
||||||
|
await bundle.write(config.outputOptions);
|
||||||
|
}
|
||||||
|
|
||||||
|
gulp.task("rollup-watch-app", () => {
|
||||||
|
watchRollup(rollupConfig.createAppConfig);
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task("rollup-watch-hassio", () => {
|
||||||
|
watchRollup(rollupConfig.createHassioConfig, ["hassio/src/**"]);
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task("rollup-dev-server-demo", () => {
|
||||||
|
watchRollup(rollupConfig.createDemoConfig, ["demo/src/**"], {
|
||||||
|
root: paths.demo_output_root,
|
||||||
|
port: 8090,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task("rollup-dev-server-cast", () => {
|
||||||
|
watchRollup(rollupConfig.createCastConfig, ["cast/src/**"], {
|
||||||
|
root: paths.cast_output_root,
|
||||||
|
port: 8080,
|
||||||
|
networkAccess: true,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task("rollup-dev-server-gallery", () => {
|
||||||
|
watchRollup(rollupConfig.createGalleryConfig, ["gallery/src/**"], {
|
||||||
|
root: paths.gallery_output_root,
|
||||||
|
port: 8100,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task(
|
||||||
|
"rollup-prod-app",
|
||||||
|
bothBuilds(rollupConfig.createAppConfig, { isProdBuild: true })
|
||||||
|
);
|
||||||
|
|
||||||
|
gulp.task(
|
||||||
|
"rollup-prod-demo",
|
||||||
|
bothBuilds(rollupConfig.createDemoConfig, { isProdBuild: true })
|
||||||
|
);
|
||||||
|
|
||||||
|
gulp.task(
|
||||||
|
"rollup-prod-cast",
|
||||||
|
bothBuilds(rollupConfig.createCastConfig, { isProdBuild: true })
|
||||||
|
);
|
||||||
|
|
||||||
|
gulp.task("rollup-prod-hassio", () =>
|
||||||
|
bothBuilds(rollupConfig.createHassioConfig, { isProdBuild: true })
|
||||||
|
);
|
||||||
|
|
||||||
|
gulp.task("rollup-prod-gallery", () =>
|
||||||
|
buildRollup(
|
||||||
|
rollupConfig.createGalleryConfig({
|
||||||
|
isProdBuild: true,
|
||||||
|
latestBuild: true,
|
||||||
|
})
|
||||||
|
)
|
||||||
|
);
|
||||||
@@ -5,18 +5,22 @@
|
|||||||
const gulp = require("gulp");
|
const gulp = require("gulp");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const fs = require("fs-extra");
|
const fs = require("fs-extra");
|
||||||
const config = require("../paths.js");
|
const workboxBuild = require("workbox-build");
|
||||||
|
const sourceMapUrl = require("source-map-url");
|
||||||
|
const paths = require("../paths.js");
|
||||||
|
|
||||||
const swPath = path.resolve(config.root, "service_worker.js");
|
const swDest = path.resolve(paths.app_output_root, "service_worker.js");
|
||||||
|
|
||||||
const writeSW = (content) => fs.outputFileSync(swPath, content.trim() + "\n");
|
const writeSW = (content) => fs.outputFileSync(swDest, content.trim() + "\n");
|
||||||
|
|
||||||
gulp.task("gen-service-worker-dev", (done) => {
|
gulp.task("gen-service-worker-app-dev", (done) => {
|
||||||
writeSW(
|
writeSW(
|
||||||
`
|
`
|
||||||
console.debug('Service worker disabled in development');
|
console.debug('Service worker disabled in development');
|
||||||
|
|
||||||
self.addEventListener('install', (event) => {
|
self.addEventListener('install', (event) => {
|
||||||
|
// This will activate the dev service worker,
|
||||||
|
// removing any prod service worker the dev might have running
|
||||||
self.skipWaiting();
|
self.skipWaiting();
|
||||||
});
|
});
|
||||||
`
|
`
|
||||||
@@ -24,10 +28,69 @@ self.addEventListener('install', (event) => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("gen-service-worker-prod", (done) => {
|
gulp.task("gen-service-worker-app-prod", async () => {
|
||||||
fs.copySync(
|
// Read bundled source file
|
||||||
path.resolve(config.output, "service_worker.js"),
|
const bundleManifestLatest = require(path.resolve(
|
||||||
path.resolve(config.root, "service_worker.js")
|
paths.app_output_latest,
|
||||||
|
"manifest.json"
|
||||||
|
));
|
||||||
|
let serviceWorkerContent = fs.readFileSync(
|
||||||
|
paths.app_output_root + bundleManifestLatest["service_worker.js"],
|
||||||
|
"utf-8"
|
||||||
);
|
);
|
||||||
done();
|
|
||||||
|
// Delete old file from frontend_latest so manifest won't pick it up
|
||||||
|
fs.removeSync(
|
||||||
|
paths.app_output_root + bundleManifestLatest["service_worker.js"]
|
||||||
|
);
|
||||||
|
fs.removeSync(
|
||||||
|
paths.app_output_root + bundleManifestLatest["service_worker.js.map"]
|
||||||
|
);
|
||||||
|
|
||||||
|
// Remove ES5
|
||||||
|
const bundleManifestES5 = require(path.resolve(
|
||||||
|
paths.app_output_es5,
|
||||||
|
"manifest.json"
|
||||||
|
));
|
||||||
|
fs.removeSync(paths.app_output_root + bundleManifestES5["service_worker.js"]);
|
||||||
|
fs.removeSync(
|
||||||
|
paths.app_output_root + bundleManifestES5["service_worker.js.map"]
|
||||||
|
);
|
||||||
|
|
||||||
|
const workboxManifest = await workboxBuild.getManifest({
|
||||||
|
// Files that mach this pattern will be considered unique and skip revision check
|
||||||
|
// ignore JS files + translation files
|
||||||
|
dontCacheBustURLsMatching: /(frontend_latest\/.+|static\/translations\/.+)/,
|
||||||
|
|
||||||
|
globDirectory: paths.app_output_root,
|
||||||
|
globPatterns: [
|
||||||
|
"frontend_latest/*.js",
|
||||||
|
// Cache all English translations because we catch them as fallback
|
||||||
|
// Using pattern to match hash instead of * to avoid caching en-GB
|
||||||
|
// 'v' added as valid hash letter because in dev we hash with 'dev'
|
||||||
|
"static/translations/**/en-+([a-fv0-9]).json",
|
||||||
|
// Icon shown on splash screen
|
||||||
|
"static/icons/favicon-192x192.png",
|
||||||
|
"static/icons/favicon.ico",
|
||||||
|
// Common fonts
|
||||||
|
"static/fonts/roboto/Roboto-Light.woff2",
|
||||||
|
"static/fonts/roboto/Roboto-Medium.woff2",
|
||||||
|
"static/fonts/roboto/Roboto-Regular.woff2",
|
||||||
|
"static/fonts/roboto/Roboto-Bold.woff2",
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
for (const warning of workboxManifest.warnings) {
|
||||||
|
console.warn(warning);
|
||||||
|
}
|
||||||
|
|
||||||
|
// remove source map and add WB manifest
|
||||||
|
serviceWorkerContent = sourceMapUrl.removeFrom(serviceWorkerContent);
|
||||||
|
serviceWorkerContent = serviceWorkerContent.replace(
|
||||||
|
"WB_MANIFEST",
|
||||||
|
JSON.stringify(workboxManifest.manifestEntries)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Write new file to root
|
||||||
|
fs.writeFileSync(swDest, serviceWorkerContent);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ const gulp = require("gulp");
|
|||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const foreach = require("gulp-foreach");
|
const foreach = require("gulp-foreach");
|
||||||
const merge = require("gulp-merge-json");
|
const merge = require("gulp-merge-json");
|
||||||
const minify = require("gulp-jsonminify");
|
|
||||||
const rename = require("gulp-rename");
|
const rename = require("gulp-rename");
|
||||||
const transform = require("gulp-json-transform");
|
const transform = require("gulp-json-transform");
|
||||||
const { mapFiles } = require("../util");
|
const { mapFiles } = require("../util");
|
||||||
@@ -34,21 +33,10 @@ String.prototype.rsplit = function (sep, maxsplit) {
|
|||||||
: split;
|
: split;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Panel translations which should be split from the core translations. These
|
// Panel translations which should be split from the core translations.
|
||||||
// should mirror the fragment definitions in polymer.json, so that we load
|
const TRANSLATION_FRAGMENTS = Object.keys(
|
||||||
// additional resources at equivalent points.
|
require("../../src/translations/en.json").ui.panel
|
||||||
const TRANSLATION_FRAGMENTS = [
|
);
|
||||||
"config",
|
|
||||||
"history",
|
|
||||||
"logbook",
|
|
||||||
"mailbox",
|
|
||||||
"profile",
|
|
||||||
"shopping-list",
|
|
||||||
"page-authorize",
|
|
||||||
"page-demo",
|
|
||||||
"page-onboarding",
|
|
||||||
"developer-tools",
|
|
||||||
];
|
|
||||||
|
|
||||||
function recursiveFlatten(prefix, data) {
|
function recursiveFlatten(prefix, data) {
|
||||||
let output = {};
|
let output = {};
|
||||||
@@ -275,25 +263,6 @@ gulp.task(taskName, function () {
|
|||||||
.src(fullDir + "/*.json")
|
.src(fullDir + "/*.json")
|
||||||
.pipe(
|
.pipe(
|
||||||
transform((data, file) => {
|
transform((data, file) => {
|
||||||
// HACK to pull in old state translations for cast
|
|
||||||
if (process.env.IS_CAST) {
|
|
||||||
const legacyTranslationsPath = path.join(
|
|
||||||
"cast/src/translations",
|
|
||||||
file.relative
|
|
||||||
);
|
|
||||||
if (fs.existsSync(legacyTranslationsPath)) {
|
|
||||||
const legacyStrings = JSON.parse(
|
|
||||||
fs.readFileSync(legacyTranslationsPath, "utf-8")
|
|
||||||
);
|
|
||||||
// These 2 translations still exist today.
|
|
||||||
if (legacyStrings.state && "default" in legacyStrings.state) {
|
|
||||||
legacyStrings.default.unknown = data.state.default.unknown;
|
|
||||||
legacyStrings.default.unavailable =
|
|
||||||
data.state.default.unavailable;
|
|
||||||
}
|
|
||||||
data.state = legacyStrings.state;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
TRANSLATION_FRAGMENTS.forEach((fragment) => {
|
TRANSLATION_FRAGMENTS.forEach((fragment) => {
|
||||||
delete data.ui.panel[fragment];
|
delete data.ui.panel[fragment];
|
||||||
});
|
});
|
||||||
@@ -320,7 +289,6 @@ gulp.task("build-flattened-translations", function () {
|
|||||||
return flatten(data);
|
return flatten(data);
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
.pipe(minify())
|
|
||||||
.pipe(
|
.pipe(
|
||||||
rename((filePath) => {
|
rename((filePath) => {
|
||||||
if (filePath.dirname === "core") {
|
if (filePath.dirname === "core") {
|
||||||
|
|||||||
11
build-scripts/gulp/wds.js
Normal file
11
build-scripts/gulp/wds.js
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// Tasks to run Rollup
|
||||||
|
const gulp = require("gulp");
|
||||||
|
const { startDevServer } = require("@web/dev-server");
|
||||||
|
|
||||||
|
gulp.task("wds-watch-app", () => {
|
||||||
|
startDevServer({
|
||||||
|
config: {
|
||||||
|
watch: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -18,6 +18,14 @@ const bothBuilds = (createConfigFunc, params) => [
|
|||||||
createConfigFunc({ ...params, latestBuild: false }),
|
createConfigFunc({ ...params, latestBuild: false }),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {{
|
||||||
|
* compiler: import("webpack").Compiler,
|
||||||
|
* contentBase: string,
|
||||||
|
* port: number,
|
||||||
|
* listenHost?: string
|
||||||
|
* }}
|
||||||
|
*/
|
||||||
const runDevServer = ({
|
const runDevServer = ({
|
||||||
compiler,
|
compiler,
|
||||||
contentBase,
|
contentBase,
|
||||||
@@ -28,146 +36,132 @@ const runDevServer = ({
|
|||||||
open: true,
|
open: true,
|
||||||
watchContentBase: true,
|
watchContentBase: true,
|
||||||
contentBase,
|
contentBase,
|
||||||
}).listen(port, listenHost, function(err) {
|
}).listen(port, listenHost, function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
// Server listening
|
// Server listening
|
||||||
log("[webpack-dev-server]", `http://localhost:${port}`);
|
log(
|
||||||
|
"[webpack-dev-server]",
|
||||||
|
`Project is running at http://localhost:${port}`
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
const handler = (done) => (err, stats) => {
|
const doneHandler = (done) => (err, stats) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(err.stack || err);
|
log.error(err.stack || err);
|
||||||
if (err.details) {
|
if (err.details) {
|
||||||
console.log(err.details);
|
log.error(err.details);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
log(`Build done @ ${new Date().toLocaleTimeString()}`);
|
|
||||||
|
|
||||||
if (stats.hasErrors() || stats.hasWarnings()) {
|
if (stats.hasErrors() || stats.hasWarnings()) {
|
||||||
console.log(stats.toString("minimal"));
|
console.log(stats.toString("minimal"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log(`Build done @ ${new Date().toLocaleTimeString()}`);
|
||||||
|
|
||||||
if (done) {
|
if (done) {
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const prodBuild = (conf) =>
|
||||||
|
new Promise((resolve) => {
|
||||||
|
webpack(
|
||||||
|
conf,
|
||||||
|
// Resolve promise when done. Because we pass a callback, webpack closes itself
|
||||||
|
doneHandler(resolve)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
gulp.task("webpack-watch-app", () => {
|
gulp.task("webpack-watch-app", () => {
|
||||||
// we are not calling done, so this command will run forever
|
// This command will run forever because we don't close compiler
|
||||||
webpack(createAppConfig({ isProdBuild: false, latestBuild: true })).watch(
|
webpack(createAppConfig({ isProdBuild: false, latestBuild: true })).watch(
|
||||||
{ ignored: /build-translations/ },
|
{ ignored: /build-translations/ },
|
||||||
handler()
|
doneHandler()
|
||||||
);
|
);
|
||||||
gulp.watch(
|
gulp.watch(
|
||||||
path.join(paths.translations_src, "en.json"),
|
path.join(paths.translations_src, "en.json"),
|
||||||
gulp.series("build-translations", "copy-translations")
|
gulp.series("build-translations", "copy-translations-app")
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task(
|
gulp.task("webpack-prod-app", () =>
|
||||||
"webpack-prod-app",
|
prodBuild(
|
||||||
() =>
|
bothBuilds(createAppConfig, {
|
||||||
new Promise((resolve) =>
|
isProdBuild: true,
|
||||||
webpack(
|
})
|
||||||
bothBuilds(createAppConfig, { isProdBuild: true }),
|
)
|
||||||
handler(resolve)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
gulp.task("webpack-dev-server-demo", () => {
|
gulp.task("webpack-dev-server-demo", () => {
|
||||||
runDevServer({
|
runDevServer({
|
||||||
compiler: webpack(bothBuilds(createDemoConfig, { isProdBuild: false })),
|
compiler: webpack(bothBuilds(createDemoConfig, { isProdBuild: false })),
|
||||||
contentBase: paths.demo_root,
|
contentBase: paths.demo_output_root,
|
||||||
port: 8090,
|
port: 8090,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task(
|
gulp.task("webpack-prod-demo", () =>
|
||||||
"webpack-prod-demo",
|
prodBuild(
|
||||||
() =>
|
bothBuilds(createDemoConfig, {
|
||||||
new Promise((resolve) =>
|
isProdBuild: true,
|
||||||
webpack(
|
})
|
||||||
bothBuilds(createDemoConfig, {
|
)
|
||||||
isProdBuild: true,
|
|
||||||
}),
|
|
||||||
handler(resolve)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
gulp.task("webpack-dev-server-cast", () => {
|
gulp.task("webpack-dev-server-cast", () => {
|
||||||
runDevServer({
|
runDevServer({
|
||||||
compiler: webpack(bothBuilds(createCastConfig, { isProdBuild: false })),
|
compiler: webpack(bothBuilds(createCastConfig, { isProdBuild: false })),
|
||||||
contentBase: paths.cast_root,
|
contentBase: paths.cast_output_root,
|
||||||
port: 8080,
|
port: 8080,
|
||||||
// Accessible from the network, because that's how Cast hits it.
|
// Accessible from the network, because that's how Cast hits it.
|
||||||
listenHost: "0.0.0.0",
|
listenHost: "0.0.0.0",
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task(
|
gulp.task("webpack-prod-cast", () =>
|
||||||
"webpack-prod-cast",
|
prodBuild(
|
||||||
() =>
|
bothBuilds(createCastConfig, {
|
||||||
new Promise((resolve) =>
|
isProdBuild: true,
|
||||||
webpack(
|
})
|
||||||
bothBuilds(createCastConfig, {
|
)
|
||||||
isProdBuild: true,
|
|
||||||
}),
|
|
||||||
|
|
||||||
handler(resolve)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
gulp.task("webpack-watch-hassio", () => {
|
gulp.task("webpack-watch-hassio", () => {
|
||||||
// we are not calling done, so this command will run forever
|
// This command will run forever because we don't close compiler
|
||||||
webpack(
|
webpack(
|
||||||
createHassioConfig({
|
createHassioConfig({
|
||||||
isProdBuild: false,
|
isProdBuild: false,
|
||||||
latestBuild: false,
|
latestBuild: true,
|
||||||
})
|
})
|
||||||
).watch({}, handler());
|
).watch({}, doneHandler());
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task(
|
gulp.task("webpack-prod-hassio", () =>
|
||||||
"webpack-prod-hassio",
|
prodBuild(
|
||||||
() =>
|
bothBuilds(createHassioConfig, {
|
||||||
new Promise((resolve) =>
|
isProdBuild: true,
|
||||||
webpack(
|
})
|
||||||
createHassioConfig({
|
)
|
||||||
isProdBuild: true,
|
|
||||||
latestBuild: false,
|
|
||||||
}),
|
|
||||||
handler(resolve)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
gulp.task("webpack-dev-server-gallery", () => {
|
gulp.task("webpack-dev-server-gallery", () => {
|
||||||
runDevServer({
|
runDevServer({
|
||||||
// We don't use the es5 build, but the dev server will fuck up the publicPath if we don't
|
// We don't use the es5 build, but the dev server will fuck up the publicPath if we don't
|
||||||
compiler: webpack(bothBuilds(createGalleryConfig, { isProdBuild: false })),
|
compiler: webpack(bothBuilds(createGalleryConfig, { isProdBuild: false })),
|
||||||
contentBase: paths.gallery_root,
|
contentBase: paths.gallery_output_root,
|
||||||
port: 8100,
|
port: 8100,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task(
|
gulp.task("webpack-prod-gallery", () =>
|
||||||
"webpack-prod-gallery",
|
prodBuild(
|
||||||
() =>
|
createGalleryConfig({
|
||||||
new Promise((resolve) =>
|
isProdBuild: true,
|
||||||
webpack(
|
latestBuild: true,
|
||||||
createGalleryConfig({
|
})
|
||||||
isProdBuild: true,
|
)
|
||||||
latestBuild: true,
|
|
||||||
}),
|
|
||||||
|
|
||||||
handler(resolve)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,34 +1,45 @@
|
|||||||
var path = require("path");
|
const path = require("path");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
polymer_dir: path.resolve(__dirname, ".."),
|
polymer_dir: path.resolve(__dirname, ".."),
|
||||||
|
|
||||||
build_dir: path.resolve(__dirname, "../build"),
|
build_dir: path.resolve(__dirname, "../build"),
|
||||||
root: path.resolve(__dirname, "../hass_frontend"),
|
app_output_root: path.resolve(__dirname, "../hass_frontend"),
|
||||||
static: path.resolve(__dirname, "../hass_frontend/static"),
|
app_output_static: path.resolve(__dirname, "../hass_frontend/static"),
|
||||||
output: path.resolve(__dirname, "../hass_frontend/frontend_latest"),
|
app_output_latest: path.resolve(
|
||||||
output_es5: path.resolve(__dirname, "../hass_frontend/frontend_es5"),
|
__dirname,
|
||||||
|
"../hass_frontend/frontend_latest"
|
||||||
|
),
|
||||||
|
app_output_es5: path.resolve(__dirname, "../hass_frontend/frontend_es5"),
|
||||||
|
|
||||||
demo_dir: path.resolve(__dirname, "../demo"),
|
demo_dir: path.resolve(__dirname, "../demo"),
|
||||||
demo_root: path.resolve(__dirname, "../demo/dist"),
|
demo_output_root: path.resolve(__dirname, "../demo/dist"),
|
||||||
demo_static: path.resolve(__dirname, "../demo/dist/static"),
|
demo_output_static: path.resolve(__dirname, "../demo/dist/static"),
|
||||||
demo_output: path.resolve(__dirname, "../demo/dist/frontend_latest"),
|
demo_output_latest: path.resolve(__dirname, "../demo/dist/frontend_latest"),
|
||||||
demo_output_es5: path.resolve(__dirname, "../demo/dist/frontend_es5"),
|
demo_output_es5: path.resolve(__dirname, "../demo/dist/frontend_es5"),
|
||||||
|
|
||||||
cast_dir: path.resolve(__dirname, "../cast"),
|
cast_dir: path.resolve(__dirname, "../cast"),
|
||||||
cast_root: path.resolve(__dirname, "../cast/dist"),
|
cast_output_root: path.resolve(__dirname, "../cast/dist"),
|
||||||
cast_static: path.resolve(__dirname, "../cast/dist/static"),
|
cast_output_static: path.resolve(__dirname, "../cast/dist/static"),
|
||||||
cast_output: path.resolve(__dirname, "../cast/dist/frontend_latest"),
|
cast_output_latest: path.resolve(__dirname, "../cast/dist/frontend_latest"),
|
||||||
cast_output_es5: path.resolve(__dirname, "../cast/dist/frontend_es5"),
|
cast_output_es5: path.resolve(__dirname, "../cast/dist/frontend_es5"),
|
||||||
|
|
||||||
gallery_dir: path.resolve(__dirname, "../gallery"),
|
gallery_dir: path.resolve(__dirname, "../gallery"),
|
||||||
gallery_root: path.resolve(__dirname, "../gallery/dist"),
|
gallery_output_root: path.resolve(__dirname, "../gallery/dist"),
|
||||||
gallery_output: path.resolve(__dirname, "../gallery/dist/frontend_latest"),
|
gallery_output_latest: path.resolve(
|
||||||
gallery_static: path.resolve(__dirname, "../gallery/dist/static"),
|
__dirname,
|
||||||
|
"../gallery/dist/frontend_latest"
|
||||||
|
),
|
||||||
|
gallery_output_static: path.resolve(__dirname, "../gallery/dist/static"),
|
||||||
|
|
||||||
hassio_dir: path.resolve(__dirname, "../hassio"),
|
hassio_dir: path.resolve(__dirname, "../hassio"),
|
||||||
hassio_root: path.resolve(__dirname, "../hassio/build"),
|
hassio_output_root: path.resolve(__dirname, "../hassio/build"),
|
||||||
hassio_publicPath: "/api/hassio/app/",
|
hassio_output_latest: path.resolve(
|
||||||
|
__dirname,
|
||||||
|
"../hassio/build/frontend_latest"
|
||||||
|
),
|
||||||
|
hassio_output_es5: path.resolve(__dirname, "../hassio/build/frontend_es5"),
|
||||||
|
hassio_publicPath: "/api/hassio/app",
|
||||||
|
|
||||||
translations_src: path.resolve(__dirname, "../src/translations"),
|
translations_src: path.resolve(__dirname, "../src/translations"),
|
||||||
};
|
};
|
||||||
|
|||||||
1
build-scripts/removedIcons.json
Normal file
1
build-scripts/removedIcons.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[]
|
||||||
14
build-scripts/rollup-plugins/dont-hash-plugin.js
Normal file
14
build-scripts/rollup-plugins/dont-hash-plugin.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
module.exports = function (opts = {}) {
|
||||||
|
const dontHash = opts.dontHash || new Set();
|
||||||
|
|
||||||
|
return {
|
||||||
|
name: "dont-hash",
|
||||||
|
renderChunk(_code, chunk, _options) {
|
||||||
|
if (!chunk.isEntry || !dontHash.has(chunk.name)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
chunk.fileName = `${chunk.name}.js`;
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
||||||
24
build-scripts/rollup-plugins/ignore-plugin.js
Normal file
24
build-scripts/rollup-plugins/ignore-plugin.js
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
module.exports = function (userOptions = {}) {
|
||||||
|
// Files need to be absolute paths.
|
||||||
|
// This only works if the file has no exports
|
||||||
|
// and only is imported for its side effects
|
||||||
|
const files = userOptions.files || [];
|
||||||
|
|
||||||
|
if (files.length === 0) {
|
||||||
|
return {
|
||||||
|
name: "ignore",
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
name: "ignore",
|
||||||
|
|
||||||
|
load(id) {
|
||||||
|
return files.some((toIgnorePath) => id.startsWith(toIgnorePath))
|
||||||
|
? {
|
||||||
|
code: "",
|
||||||
|
}
|
||||||
|
: null;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
||||||
34
build-scripts/rollup-plugins/manifest-plugin.js
Normal file
34
build-scripts/rollup-plugins/manifest-plugin.js
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
const url = require("url");
|
||||||
|
|
||||||
|
const defaultOptions = {
|
||||||
|
publicPath: "",
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = function (userOptions = {}) {
|
||||||
|
const options = { ...defaultOptions, ...userOptions };
|
||||||
|
|
||||||
|
return {
|
||||||
|
name: "manifest",
|
||||||
|
generateBundle(outputOptions, bundle) {
|
||||||
|
const manifest = {};
|
||||||
|
|
||||||
|
for (const chunk of Object.values(bundle)) {
|
||||||
|
if (!chunk.isEntry) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// Add js extension to mimic Webpack manifest.
|
||||||
|
manifest[`${chunk.name}.js`] = url.resolve(
|
||||||
|
options.publicPath,
|
||||||
|
chunk.fileName
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.emitFile({
|
||||||
|
type: "asset",
|
||||||
|
source: JSON.stringify(manifest, undefined, 2),
|
||||||
|
name: "manifest.json",
|
||||||
|
fileName: "manifest.json",
|
||||||
|
});
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
||||||
149
build-scripts/rollup-plugins/worker-plugin.js
Normal file
149
build-scripts/rollup-plugins/worker-plugin.js
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
// Worker plugin
|
||||||
|
// Each worker will include all of its dependencies
|
||||||
|
// instead of relying on an importer.
|
||||||
|
|
||||||
|
// Forked from v.1.4.1
|
||||||
|
// https://github.com/surma/rollup-plugin-off-main-thread
|
||||||
|
/**
|
||||||
|
* Copyright 2018 Google Inc. All Rights Reserved.
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
const rollup = require("rollup");
|
||||||
|
const path = require("path");
|
||||||
|
const MagicString = require("magic-string");
|
||||||
|
|
||||||
|
const defaultOpts = {
|
||||||
|
// A RegExp to find `new Workers()` calls. The second capture group _must_
|
||||||
|
// capture the provided file name without the quotes.
|
||||||
|
workerRegexp: /new Worker\((["'])(.+?)\1(,[^)]+)?\)/g,
|
||||||
|
plugins: ["node-resolve", "commonjs", "babel", "terser", "ignore"],
|
||||||
|
};
|
||||||
|
|
||||||
|
async function getBundledWorker(workerPath, rollupOptions) {
|
||||||
|
const bundle = await rollup.rollup({
|
||||||
|
...rollupOptions,
|
||||||
|
input: {
|
||||||
|
worker: workerPath,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const { output } = await bundle.generate({
|
||||||
|
// Generates cleanest output, we shouldn't have any imports/exports
|
||||||
|
// that would be incompatible with ES5.
|
||||||
|
format: "es",
|
||||||
|
// We should not export anything. This will fail build if we are.
|
||||||
|
exports: "none",
|
||||||
|
});
|
||||||
|
|
||||||
|
let code;
|
||||||
|
|
||||||
|
for (const chunkOrAsset of output) {
|
||||||
|
if (chunkOrAsset.name === "worker") {
|
||||||
|
code = chunkOrAsset.code;
|
||||||
|
} else if (chunkOrAsset.type !== "asset") {
|
||||||
|
throw new Error("Unexpected extra output");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = function (opts = {}) {
|
||||||
|
opts = { ...defaultOpts, ...opts };
|
||||||
|
|
||||||
|
let rollupOptions;
|
||||||
|
let refIds;
|
||||||
|
|
||||||
|
return {
|
||||||
|
name: "hass-worker",
|
||||||
|
|
||||||
|
async buildStart(options) {
|
||||||
|
refIds = {};
|
||||||
|
rollupOptions = {
|
||||||
|
plugins: options.plugins.filter((plugin) =>
|
||||||
|
opts.plugins.includes(plugin.name)
|
||||||
|
),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
async transform(code, id) {
|
||||||
|
// Copy the regexp as they are stateful and this hook is async.
|
||||||
|
const workerRegexp = new RegExp(
|
||||||
|
opts.workerRegexp.source,
|
||||||
|
opts.workerRegexp.flags
|
||||||
|
);
|
||||||
|
if (!workerRegexp.test(code)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const ms = new MagicString(code);
|
||||||
|
// Reset the regexp
|
||||||
|
workerRegexp.lastIndex = 0;
|
||||||
|
while (true) {
|
||||||
|
const match = workerRegexp.exec(code);
|
||||||
|
if (!match) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
const workerFile = match[2];
|
||||||
|
let optionsObject = {};
|
||||||
|
// Parse the optional options object
|
||||||
|
if (match[3] && match[3].length > 0) {
|
||||||
|
// FIXME: ooooof!
|
||||||
|
optionsObject = new Function(`return ${match[3].slice(1)};`)();
|
||||||
|
}
|
||||||
|
delete optionsObject.type;
|
||||||
|
|
||||||
|
if (!new RegExp("^.*/").test(workerFile)) {
|
||||||
|
this.warn(
|
||||||
|
`Paths passed to the Worker constructor must be relative or absolute, i.e. start with /, ./ or ../ (just like dynamic import!). Ignoring "${workerFile}".`
|
||||||
|
);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find worker file and store it as a chunk with ID prefixed for our loader
|
||||||
|
const resolvedWorkerFile = (await this.resolve(workerFile, id)).id;
|
||||||
|
let chunkRefId;
|
||||||
|
if (resolvedWorkerFile in refIds) {
|
||||||
|
chunkRefId = refIds[resolvedWorkerFile];
|
||||||
|
} else {
|
||||||
|
this.addWatchFile(resolvedWorkerFile);
|
||||||
|
const source = await getBundledWorker(
|
||||||
|
resolvedWorkerFile,
|
||||||
|
rollupOptions
|
||||||
|
);
|
||||||
|
chunkRefId = refIds[resolvedWorkerFile] = this.emitFile({
|
||||||
|
name: path.basename(resolvedWorkerFile),
|
||||||
|
source,
|
||||||
|
type: "asset",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const workerParametersStartIndex = match.index + "new Worker(".length;
|
||||||
|
const workerParametersEndIndex =
|
||||||
|
match.index + match[0].length - ")".length;
|
||||||
|
|
||||||
|
ms.overwrite(
|
||||||
|
workerParametersStartIndex,
|
||||||
|
workerParametersEndIndex,
|
||||||
|
`import.meta.ROLLUP_FILE_URL_${chunkRefId}, ${JSON.stringify(
|
||||||
|
optionsObject
|
||||||
|
)}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
code: ms.toString(),
|
||||||
|
map: ms.generateMap({ hires: true }),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
||||||
156
build-scripts/rollup.js
Normal file
156
build-scripts/rollup.js
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
const path = require("path");
|
||||||
|
|
||||||
|
const commonjs = require("@rollup/plugin-commonjs");
|
||||||
|
const resolve = require("@rollup/plugin-node-resolve");
|
||||||
|
const json = require("@rollup/plugin-json");
|
||||||
|
const babel = require("@rollup/plugin-babel").babel;
|
||||||
|
const replace = require("@rollup/plugin-replace");
|
||||||
|
const visualizer = require("rollup-plugin-visualizer");
|
||||||
|
const { string } = require("rollup-plugin-string");
|
||||||
|
const { terser } = require("rollup-plugin-terser");
|
||||||
|
const manifest = require("./rollup-plugins/manifest-plugin");
|
||||||
|
const worker = require("./rollup-plugins/worker-plugin");
|
||||||
|
const dontHashPlugin = require("./rollup-plugins/dont-hash-plugin");
|
||||||
|
const ignore = require("./rollup-plugins/ignore-plugin");
|
||||||
|
|
||||||
|
const bundle = require("./bundle");
|
||||||
|
const paths = require("./paths");
|
||||||
|
|
||||||
|
const extensions = [".js", ".ts"];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {Object} arg
|
||||||
|
* @param { import("rollup").InputOption } arg.input
|
||||||
|
*/
|
||||||
|
const createRollupConfig = ({
|
||||||
|
entry,
|
||||||
|
outputPath,
|
||||||
|
defineOverlay,
|
||||||
|
isProdBuild,
|
||||||
|
latestBuild,
|
||||||
|
isStatsBuild,
|
||||||
|
publicPath,
|
||||||
|
dontHash,
|
||||||
|
isWDS,
|
||||||
|
}) => {
|
||||||
|
return {
|
||||||
|
/**
|
||||||
|
* @type { import("rollup").InputOptions }
|
||||||
|
*/
|
||||||
|
inputOptions: {
|
||||||
|
input: entry,
|
||||||
|
// Some entry points contain no JavaScript. This setting silences a warning about that.
|
||||||
|
// https://rollupjs.org/guide/en/#preserveentrysignatures
|
||||||
|
preserveEntrySignatures: false,
|
||||||
|
plugins: [
|
||||||
|
ignore({
|
||||||
|
files: bundle.emptyPackages({ latestBuild }),
|
||||||
|
}),
|
||||||
|
resolve({
|
||||||
|
extensions,
|
||||||
|
preferBuiltins: false,
|
||||||
|
browser: true,
|
||||||
|
rootDir: paths.polymer_dir,
|
||||||
|
}),
|
||||||
|
commonjs({
|
||||||
|
namedExports: {
|
||||||
|
"js-yaml": ["safeDump", "safeLoad"],
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
json(),
|
||||||
|
babel({
|
||||||
|
...bundle.babelOptions({ latestBuild }),
|
||||||
|
extensions,
|
||||||
|
exclude: bundle.babelExclude(),
|
||||||
|
babelHelpers: isWDS ? "inline" : "bundled",
|
||||||
|
}),
|
||||||
|
string({
|
||||||
|
// Import certain extensions as strings
|
||||||
|
include: [path.join(paths.polymer_dir, "node_modules/**/*.css")],
|
||||||
|
}),
|
||||||
|
replace(
|
||||||
|
bundle.definedVars({ isProdBuild, latestBuild, defineOverlay })
|
||||||
|
),
|
||||||
|
!isWDS &&
|
||||||
|
manifest({
|
||||||
|
publicPath,
|
||||||
|
}),
|
||||||
|
!isWDS && worker(),
|
||||||
|
!isWDS && dontHashPlugin({ dontHash }),
|
||||||
|
!isWDS && isProdBuild && terser(bundle.terserOptions(latestBuild)),
|
||||||
|
!isWDS &&
|
||||||
|
isStatsBuild &&
|
||||||
|
visualizer({
|
||||||
|
// https://github.com/btd/rollup-plugin-visualizer#options
|
||||||
|
open: true,
|
||||||
|
sourcemap: true,
|
||||||
|
}),
|
||||||
|
].filter(Boolean),
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* @type { import("rollup").OutputOptions }
|
||||||
|
*/
|
||||||
|
outputOptions: {
|
||||||
|
// https://rollupjs.org/guide/en/#outputdir
|
||||||
|
dir: outputPath,
|
||||||
|
// https://rollupjs.org/guide/en/#outputformat
|
||||||
|
format: latestBuild ? "es" : "systemjs",
|
||||||
|
// https://rollupjs.org/guide/en/#outputexternallivebindings
|
||||||
|
externalLiveBindings: false,
|
||||||
|
// https://rollupjs.org/guide/en/#outputentryfilenames
|
||||||
|
// https://rollupjs.org/guide/en/#outputchunkfilenames
|
||||||
|
// https://rollupjs.org/guide/en/#outputassetfilenames
|
||||||
|
entryFileNames:
|
||||||
|
isProdBuild && !isStatsBuild ? "[name]-[hash].js" : "[name].js",
|
||||||
|
chunkFileNames:
|
||||||
|
isProdBuild && !isStatsBuild ? "c.[hash].js" : "[name].js",
|
||||||
|
assetFileNames:
|
||||||
|
isProdBuild && !isStatsBuild ? "a.[hash].js" : "[name].js",
|
||||||
|
// https://rollupjs.org/guide/en/#outputsourcemap
|
||||||
|
sourcemap: isProdBuild ? true : "inline",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const createAppConfig = ({ isProdBuild, latestBuild, isStatsBuild, isWDS }) => {
|
||||||
|
return createRollupConfig(
|
||||||
|
bundle.config.app({
|
||||||
|
isProdBuild,
|
||||||
|
latestBuild,
|
||||||
|
isStatsBuild,
|
||||||
|
isWDS,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const createDemoConfig = ({ isProdBuild, latestBuild, isStatsBuild }) => {
|
||||||
|
return createRollupConfig(
|
||||||
|
bundle.config.demo({
|
||||||
|
isProdBuild,
|
||||||
|
latestBuild,
|
||||||
|
isStatsBuild,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const createCastConfig = ({ isProdBuild, latestBuild }) => {
|
||||||
|
return createRollupConfig(bundle.config.cast({ isProdBuild, latestBuild }));
|
||||||
|
};
|
||||||
|
|
||||||
|
const createHassioConfig = ({ isProdBuild, latestBuild }) => {
|
||||||
|
return createRollupConfig(bundle.config.hassio({ isProdBuild, latestBuild }));
|
||||||
|
};
|
||||||
|
|
||||||
|
const createGalleryConfig = ({ isProdBuild, latestBuild }) => {
|
||||||
|
return createRollupConfig(
|
||||||
|
bundle.config.gallery({ isProdBuild, latestBuild })
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
createAppConfig,
|
||||||
|
createDemoConfig,
|
||||||
|
createCastConfig,
|
||||||
|
createHassioConfig,
|
||||||
|
createGalleryConfig,
|
||||||
|
};
|
||||||
@@ -1,23 +1,29 @@
|
|||||||
const webpack = require("webpack");
|
const webpack = require("webpack");
|
||||||
const fs = require("fs");
|
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const TerserPlugin = require("terser-webpack-plugin");
|
const TerserPlugin = require("terser-webpack-plugin");
|
||||||
const WorkboxPlugin = require("workbox-webpack-plugin");
|
|
||||||
const ManifestPlugin = require("webpack-manifest-plugin");
|
const ManifestPlugin = require("webpack-manifest-plugin");
|
||||||
const paths = require("./paths.js");
|
const paths = require("./paths.js");
|
||||||
const { babelLoaderConfig } = require("./babel.js");
|
const bundle = require("./bundle");
|
||||||
|
const log = require("fancy-log");
|
||||||
|
|
||||||
let version = fs
|
class LogStartCompilePlugin {
|
||||||
.readFileSync(path.resolve(paths.polymer_dir, "setup.py"), "utf8")
|
ignoredFirst = false;
|
||||||
.match(/\d{8}\.\d+/);
|
|
||||||
if (!version) {
|
apply(compiler) {
|
||||||
throw Error("Version not found");
|
compiler.hooks.beforeCompile.tap("LogStartCompilePlugin", () => {
|
||||||
|
if (!this.ignoredFirst) {
|
||||||
|
this.ignoredFirst = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
log("Changes detected. Starting compilation");
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
version = version[0];
|
|
||||||
|
|
||||||
const createWebpackConfig = ({
|
const createWebpackConfig = ({
|
||||||
entry,
|
entry,
|
||||||
outputRoot,
|
outputPath,
|
||||||
|
publicPath,
|
||||||
defineOverlay,
|
defineOverlay,
|
||||||
isProdBuild,
|
isProdBuild,
|
||||||
latestBuild,
|
latestBuild,
|
||||||
@@ -27,84 +33,96 @@ const createWebpackConfig = ({
|
|||||||
if (!dontHash) {
|
if (!dontHash) {
|
||||||
dontHash = new Set();
|
dontHash = new Set();
|
||||||
}
|
}
|
||||||
|
const ignorePackages = bundle.ignorePackages({ latestBuild });
|
||||||
return {
|
return {
|
||||||
mode: isProdBuild ? "production" : "development",
|
mode: isProdBuild ? "production" : "development",
|
||||||
devtool: isProdBuild ? "source-map" : "inline-cheap-module-source-map",
|
devtool: isProdBuild
|
||||||
|
? "cheap-module-source-map"
|
||||||
|
: "eval-cheap-module-source-map",
|
||||||
entry,
|
entry,
|
||||||
|
node: false,
|
||||||
module: {
|
module: {
|
||||||
rules: [
|
rules: [
|
||||||
babelLoaderConfig({ latestBuild }),
|
{
|
||||||
|
test: /\.m?js$|\.ts$/,
|
||||||
|
exclude: bundle.babelExclude(),
|
||||||
|
use: {
|
||||||
|
loader: "babel-loader",
|
||||||
|
options: bundle.babelOptions({ latestBuild }),
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
test: /\.css$/,
|
test: /\.css$/,
|
||||||
use: "raw-loader",
|
use: "raw-loader",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
test: /\.(html)$/,
|
|
||||||
use: {
|
|
||||||
loader: "html-loader",
|
|
||||||
options: {
|
|
||||||
exportAsEs6Default: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
optimization: {
|
optimization: {
|
||||||
minimizer: [
|
minimizer: [
|
||||||
new TerserPlugin({
|
new TerserPlugin({
|
||||||
cache: true,
|
|
||||||
parallel: true,
|
parallel: true,
|
||||||
extractComments: true,
|
extractComments: true,
|
||||||
sourceMap: true,
|
terserOptions: bundle.terserOptions(latestBuild),
|
||||||
terserOptions: {
|
|
||||||
safari10: true,
|
|
||||||
ecma: latestBuild ? undefined : 5,
|
|
||||||
},
|
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
new ManifestPlugin(),
|
new ManifestPlugin({
|
||||||
new webpack.DefinePlugin({
|
// Only include the JS of entrypoints
|
||||||
__DEV__: !isProdBuild,
|
filter: (file) => file.isInitial && !file.name.endsWith(".map"),
|
||||||
__BUILD__: JSON.stringify(latestBuild ? "latest" : "es5"),
|
}),
|
||||||
__VERSION__: JSON.stringify(version),
|
new webpack.DefinePlugin(
|
||||||
__DEMO__: false,
|
bundle.definedVars({ isProdBuild, latestBuild, defineOverlay })
|
||||||
__BACKWARDS_COMPAT__: false,
|
),
|
||||||
__STATIC_PATH__: "/static/",
|
new webpack.IgnorePlugin({
|
||||||
"process.env.NODE_ENV": JSON.stringify(
|
checkResource(resource, context) {
|
||||||
isProdBuild ? "production" : "development"
|
// Only use ignore to intercept imports that we don't control
|
||||||
),
|
// inside node_module dependencies.
|
||||||
...defineOverlay,
|
if (
|
||||||
|
!context.includes("/node_modules/") ||
|
||||||
|
// calling define.amd will call require("!!webpack amd options")
|
||||||
|
resource.startsWith("!!webpack") ||
|
||||||
|
// loaded by webpack dev server but doesn't exist.
|
||||||
|
resource === "webpack/hot"
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
let fullPath;
|
||||||
|
try {
|
||||||
|
fullPath = resource.startsWith(".")
|
||||||
|
? path.resolve(context, resource)
|
||||||
|
: require.resolve(resource);
|
||||||
|
} catch (err) {
|
||||||
|
console.error(
|
||||||
|
"Error in Home Assistant ignore plugin",
|
||||||
|
resource,
|
||||||
|
context
|
||||||
|
);
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ignorePackages.some((toIgnorePath) =>
|
||||||
|
fullPath.startsWith(toIgnorePath)
|
||||||
|
);
|
||||||
|
},
|
||||||
}),
|
}),
|
||||||
// Ignore moment.js locales
|
|
||||||
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
|
|
||||||
// Color.js is bloated, it contains all color definitions for all material color sets.
|
|
||||||
new webpack.NormalModuleReplacementPlugin(
|
new webpack.NormalModuleReplacementPlugin(
|
||||||
/@polymer\/paper-styles\/color\.js$/,
|
new RegExp(bundle.emptyPackages({ latestBuild }).join("|")),
|
||||||
path.resolve(paths.polymer_dir, "src/util/empty.js")
|
path.resolve(paths.polymer_dir, "src/util/empty.js")
|
||||||
),
|
),
|
||||||
// Ignore roboto pointing at CDN. We use local font-roboto-local.
|
// We need to change the import of the polyfill for EventTarget, so we replace the polyfill file with our customized one
|
||||||
new webpack.NormalModuleReplacementPlugin(
|
new webpack.NormalModuleReplacementPlugin(
|
||||||
/@polymer\/font-roboto\/roboto\.js$/,
|
new RegExp(
|
||||||
path.resolve(paths.polymer_dir, "src/util/empty.js")
|
require.resolve(
|
||||||
),
|
"lit-virtualizer/lib/uni-virtualizer/lib/polyfillLoaders/EventTarget.js"
|
||||||
// Ignore mwc icons pointing at CDN.
|
)
|
||||||
new webpack.NormalModuleReplacementPlugin(
|
),
|
||||||
/@material\/mwc-icon\/mwc-icon-font\.js$/,
|
path.resolve(paths.polymer_dir, "src/resources/EventTarget-ponyfill.js")
|
||||||
path.resolve(paths.polymer_dir, "src/util/empty.js")
|
|
||||||
),
|
),
|
||||||
|
!isProdBuild && new LogStartCompilePlugin(),
|
||||||
].filter(Boolean),
|
].filter(Boolean),
|
||||||
resolve: {
|
resolve: {
|
||||||
extensions: [".ts", ".js", ".json"],
|
extensions: [".ts", ".js", ".json"],
|
||||||
alias: {
|
|
||||||
react: "preact-compat",
|
|
||||||
"react-dom": "preact-compat",
|
|
||||||
// Not necessary unless you consume a module using `createClass`
|
|
||||||
"create-react-class": "preact-compat/lib/create-react-class",
|
|
||||||
// Not necessary unless you consume a module requiring `react-dom-factories`
|
|
||||||
"react-dom-factories": "preact-compat/lib/react-dom-factories",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
filename: ({ chunk }) => {
|
filename: ({ chunk }) => {
|
||||||
@@ -113,152 +131,60 @@ const createWebpackConfig = ({
|
|||||||
}
|
}
|
||||||
return `${chunk.name}.${chunk.hash.substr(0, 8)}.js`;
|
return `${chunk.name}.${chunk.hash.substr(0, 8)}.js`;
|
||||||
},
|
},
|
||||||
|
environment: {
|
||||||
|
// The environment supports arrow functions ('() => { ... }').
|
||||||
|
arrowFunction: latestBuild,
|
||||||
|
// The environment supports BigInt as literal (123n).
|
||||||
|
bigIntLiteral: false,
|
||||||
|
// The environment supports const and let for variable declarations.
|
||||||
|
const: latestBuild,
|
||||||
|
// The environment supports destructuring ('{ a, b } = obj').
|
||||||
|
destructuring: latestBuild,
|
||||||
|
// The environment supports an async import() function to import EcmaScript modules.
|
||||||
|
dynamicImport: latestBuild,
|
||||||
|
// The environment supports 'for of' iteration ('for (const x of array) { ... }').
|
||||||
|
forOf: latestBuild,
|
||||||
|
// The environment supports ECMAScript Module syntax to import ECMAScript modules (import ... from '...').
|
||||||
|
module: latestBuild,
|
||||||
|
},
|
||||||
chunkFilename:
|
chunkFilename:
|
||||||
isProdBuild && !isStatsBuild
|
isProdBuild && !isStatsBuild
|
||||||
? "chunk.[chunkhash].js"
|
? "chunk.[chunkhash].js"
|
||||||
: "[name].chunk.js",
|
: "[name].chunk.js",
|
||||||
path: path.resolve(
|
path: outputPath,
|
||||||
outputRoot,
|
publicPath,
|
||||||
latestBuild ? "frontend_latest" : "frontend_es5"
|
// To silence warning in worker plugin
|
||||||
),
|
|
||||||
publicPath: latestBuild ? "/frontend_latest/" : "/frontend_es5/",
|
|
||||||
// For workerize loader
|
|
||||||
globalObject: "self",
|
globalObject: "self",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const createAppConfig = ({ isProdBuild, latestBuild, isStatsBuild }) => {
|
const createAppConfig = ({ isProdBuild, latestBuild, isStatsBuild }) => {
|
||||||
const config = createWebpackConfig({
|
return createWebpackConfig(
|
||||||
entry: {
|
bundle.config.app({ isProdBuild, latestBuild, isStatsBuild })
|
||||||
app: "./src/entrypoints/app.ts",
|
);
|
||||||
authorize: "./src/entrypoints/authorize.ts",
|
|
||||||
onboarding: "./src/entrypoints/onboarding.ts",
|
|
||||||
core: "./src/entrypoints/core.ts",
|
|
||||||
compatibility: "./src/entrypoints/compatibility.ts",
|
|
||||||
"custom-panel": "./src/entrypoints/custom-panel.ts",
|
|
||||||
"hass-icons": "./src/entrypoints/hass-icons.ts",
|
|
||||||
},
|
|
||||||
outputRoot: paths.root,
|
|
||||||
isProdBuild,
|
|
||||||
latestBuild,
|
|
||||||
isStatsBuild,
|
|
||||||
});
|
|
||||||
|
|
||||||
if (latestBuild) {
|
|
||||||
// Create an object mapping browser urls to their paths during build
|
|
||||||
const translationMetadata = require("../build-translations/translationMetadata.json");
|
|
||||||
const workBoxTranslationsTemplatedURLs = {};
|
|
||||||
const englishFilename = `en-${translationMetadata.translations.en.hash}.json`;
|
|
||||||
|
|
||||||
// core
|
|
||||||
workBoxTranslationsTemplatedURLs[
|
|
||||||
`/static/translations/${englishFilename}`
|
|
||||||
] = `build-translations/output/${englishFilename}`;
|
|
||||||
|
|
||||||
translationMetadata.fragments.forEach((fragment) => {
|
|
||||||
workBoxTranslationsTemplatedURLs[
|
|
||||||
`/static/translations/${fragment}/${englishFilename}`
|
|
||||||
] = `build-translations/output/${fragment}/${englishFilename}`;
|
|
||||||
});
|
|
||||||
|
|
||||||
config.plugins.push(
|
|
||||||
new WorkboxPlugin.InjectManifest({
|
|
||||||
swSrc: "./src/entrypoints/service-worker-hass.js",
|
|
||||||
swDest: "service_worker.js",
|
|
||||||
importWorkboxFrom: "local",
|
|
||||||
include: [/\.js$/],
|
|
||||||
templatedURLs: {
|
|
||||||
...workBoxTranslationsTemplatedURLs,
|
|
||||||
"/static/icons/favicon-192x192.png":
|
|
||||||
"public/icons/favicon-192x192.png",
|
|
||||||
"/static/fonts/roboto/Roboto-Light.woff2":
|
|
||||||
"node_modules/roboto-fontface/fonts/roboto/Roboto-Light.woff2",
|
|
||||||
"/static/fonts/roboto/Roboto-Medium.woff2":
|
|
||||||
"node_modules/roboto-fontface/fonts/roboto/Roboto-Medium.woff2",
|
|
||||||
"/static/fonts/roboto/Roboto-Regular.woff2":
|
|
||||||
"node_modules/roboto-fontface/fonts/roboto/Roboto-Regular.woff2",
|
|
||||||
"/static/fonts/roboto/Roboto-Bold.woff2":
|
|
||||||
"node_modules/roboto-fontface/fonts/roboto/Roboto-Bold.woff2",
|
|
||||||
},
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return config;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const createDemoConfig = ({ isProdBuild, latestBuild, isStatsBuild }) => {
|
const createDemoConfig = ({ isProdBuild, latestBuild, isStatsBuild }) => {
|
||||||
return createWebpackConfig({
|
return createWebpackConfig(
|
||||||
entry: {
|
bundle.config.demo({ isProdBuild, latestBuild, isStatsBuild })
|
||||||
main: path.resolve(paths.demo_dir, "src/entrypoint.ts"),
|
);
|
||||||
compatibility: path.resolve(
|
|
||||||
paths.polymer_dir,
|
|
||||||
"src/entrypoints/compatibility.ts"
|
|
||||||
),
|
|
||||||
},
|
|
||||||
outputRoot: paths.demo_root,
|
|
||||||
defineOverlay: {
|
|
||||||
__VERSION__: JSON.stringify(`DEMO-${version}`),
|
|
||||||
__DEMO__: true,
|
|
||||||
},
|
|
||||||
isProdBuild,
|
|
||||||
latestBuild,
|
|
||||||
isStatsBuild,
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const createCastConfig = ({ isProdBuild, latestBuild }) => {
|
const createCastConfig = ({ isProdBuild, latestBuild }) => {
|
||||||
const entry = {
|
return createWebpackConfig(bundle.config.cast({ isProdBuild, latestBuild }));
|
||||||
launcher: path.resolve(paths.cast_dir, "src/launcher/entrypoint.ts"),
|
|
||||||
};
|
|
||||||
|
|
||||||
if (latestBuild) {
|
|
||||||
entry.receiver = path.resolve(paths.cast_dir, "src/receiver/entrypoint.ts");
|
|
||||||
}
|
|
||||||
|
|
||||||
return createWebpackConfig({
|
|
||||||
entry,
|
|
||||||
outputRoot: paths.cast_root,
|
|
||||||
isProdBuild,
|
|
||||||
latestBuild,
|
|
||||||
defineOverlay: {
|
|
||||||
__BACKWARDS_COMPAT__: true,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const createHassioConfig = ({ isProdBuild, latestBuild }) => {
|
const createHassioConfig = ({ isProdBuild, latestBuild }) => {
|
||||||
if (latestBuild) {
|
return createWebpackConfig(
|
||||||
throw new Error("Hass.io does not support latest build!");
|
bundle.config.hassio({ isProdBuild, latestBuild })
|
||||||
}
|
);
|
||||||
const config = createWebpackConfig({
|
|
||||||
entry: {
|
|
||||||
entrypoint: path.resolve(paths.hassio_dir, "src/entrypoint.ts"),
|
|
||||||
},
|
|
||||||
outputRoot: "",
|
|
||||||
isProdBuild,
|
|
||||||
latestBuild,
|
|
||||||
dontHash: new Set(["entrypoint"]),
|
|
||||||
});
|
|
||||||
|
|
||||||
config.output.path = paths.hassio_root;
|
|
||||||
config.output.publicPath = paths.hassio_publicPath;
|
|
||||||
|
|
||||||
return config;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const createGalleryConfig = ({ isProdBuild, latestBuild }) => {
|
const createGalleryConfig = ({ isProdBuild, latestBuild }) => {
|
||||||
const config = createWebpackConfig({
|
return createWebpackConfig(
|
||||||
entry: {
|
bundle.config.gallery({ isProdBuild, latestBuild })
|
||||||
entrypoint: path.resolve(paths.gallery_dir, "src/entrypoint.js"),
|
);
|
||||||
},
|
|
||||||
outputRoot: paths.gallery_root,
|
|
||||||
isProdBuild,
|
|
||||||
latestBuild,
|
|
||||||
});
|
|
||||||
|
|
||||||
return config;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 16 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 186 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
10
cast/rollup.config.js
Normal file
10
cast/rollup.config.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
const rollup = require("../build-scripts/rollup.js");
|
||||||
|
const env = require("../build-scripts/env.js");
|
||||||
|
|
||||||
|
const config = rollup.createCastConfig({
|
||||||
|
isProdBuild: env.isProdBuild(),
|
||||||
|
latestBuild: true,
|
||||||
|
isStatsBuild: env.isStatsBuild(),
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = { ...config.inputOptions, output: config.outputOptions };
|
||||||
@@ -37,18 +37,21 @@
|
|||||||
<body>
|
<body>
|
||||||
<%= renderTemplate('_js_base') %>
|
<%= renderTemplate('_js_base') %>
|
||||||
|
|
||||||
<script type="module" crossorigin="use-credentials">
|
<script>
|
||||||
import "<%= latestLauncherJS %>";
|
import("<%= latestLauncherJS %>");
|
||||||
|
window.latestJS = true;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script nomodule>
|
<script>
|
||||||
(function() {
|
if (!window.latestJS) {
|
||||||
// // Safari 10.1 supports type=module but ignores nomodule, so we add this check.
|
<% if (useRollup) { %>
|
||||||
if (!isS101) {
|
_ls("/static/js/s.min.js").onload = function() {
|
||||||
_ls("/static/polyfills/custom-elements-es5-adapter.js");
|
System.import("<%= es5LauncherJS %>");
|
||||||
|
};
|
||||||
|
<% } else { %>
|
||||||
_ls("<%= es5LauncherJS %>");
|
_ls("<%= es5LauncherJS %>");
|
||||||
}
|
<% } %>
|
||||||
})();
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<hc-layout subtitle="FAQ">
|
<hc-layout subtitle="FAQ">
|
||||||
@@ -209,13 +212,8 @@
|
|||||||
Chromecast is a technology developed by Google, and is available on:
|
Chromecast is a technology developed by Google, and is available on:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Google Chrome (all platforms except on iOS)</li>
|
<li>Google Chrome (all platforms except iOS)</li>
|
||||||
<li>
|
<li>Microsoft Edge (all platforms)</li>
|
||||||
Microsoft Edge (all platforms,
|
|
||||||
<a href="https://www.microsoftedgeinsider.com" target="_blank"
|
|
||||||
>dev and canary builds only</a
|
|
||||||
>)
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -248,7 +246,7 @@ http:
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
var _gaq = [["_setAccount", "UA-57927901-9"], ["_trackPageview"]];
|
var _gaq = [["_setAccount", "UA-57927901-9"], ["_trackPageview"]];
|
||||||
(function(d, t) {
|
(function (d, t) {
|
||||||
var g = d.createElement(t),
|
var g = d.createElement(t),
|
||||||
s = d.getElementsByTagName(t)[0];
|
s = d.getElementsByTagName(t)[0];
|
||||||
g.src =
|
g.src =
|
||||||
|
|||||||
@@ -28,18 +28,21 @@
|
|||||||
|
|
||||||
<hc-connect></hc-connect>
|
<hc-connect></hc-connect>
|
||||||
|
|
||||||
<script type="module" crossorigin="use-credentials">
|
<script>
|
||||||
import "<%= latestLauncherJS %>";
|
import("<%= latestLauncherJS %>");
|
||||||
|
window.latestJS = true;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script nomodule>
|
<script>
|
||||||
(function() {
|
if (!window.latestJS) {
|
||||||
// // Safari 10.1 supports type=module but ignores nomodule, so we add this check.
|
<% if (useRollup) { %>
|
||||||
if (!isS101) {
|
_ls("/static/js/s.min.js").onload = function() {
|
||||||
_ls("/static/polyfills/custom-elements-es5-adapter.js");
|
System.import("<%= es5LauncherJS %>");
|
||||||
|
};
|
||||||
|
<% } else { %>
|
||||||
_ls("<%= es5LauncherJS %>");
|
_ls("<%= es5LauncherJS %>");
|
||||||
}
|
<% } %>
|
||||||
})();
|
}
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import "../../../src/components/ha-iconset-svg";
|
import "../../../src/resources/safari-14-attachshadow-patch";
|
||||||
import "../../../src/resources/ha-style";
|
import "../../../src/resources/ha-style";
|
||||||
import "../../../src/resources/hass-icons";
|
|
||||||
import "../../../src/resources/roboto";
|
import "../../../src/resources/roboto";
|
||||||
import "./layout/hc-connect";
|
import "./layout/hc-connect";
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
import "@polymer/iron-icon";
|
|
||||||
import "@polymer/paper-item/paper-icon-item";
|
import "@polymer/paper-item/paper-icon-item";
|
||||||
import "@polymer/paper-listbox/paper-listbox";
|
import "@polymer/paper-listbox/paper-listbox";
|
||||||
import { Auth, Connection } from "home-assistant-js-websocket";
|
import { Auth, Connection } from "home-assistant-js-websocket";
|
||||||
@@ -9,6 +8,7 @@ import {
|
|||||||
html,
|
html,
|
||||||
LitElement,
|
LitElement,
|
||||||
property,
|
property,
|
||||||
|
internalProperty,
|
||||||
TemplateResult,
|
TemplateResult,
|
||||||
} from "lit-element";
|
} from "lit-element";
|
||||||
import { CastManager } from "../../../../src/cast/cast_manager";
|
import { CastManager } from "../../../../src/cast/cast_manager";
|
||||||
@@ -29,7 +29,7 @@ import {
|
|||||||
getLovelaceCollection,
|
getLovelaceCollection,
|
||||||
LovelaceConfig,
|
LovelaceConfig,
|
||||||
} from "../../../../src/data/lovelace";
|
} from "../../../../src/data/lovelace";
|
||||||
import "../../../../src/layouts/loading-screen";
|
import "../../../../src/layouts/hass-loading-screen";
|
||||||
import { generateDefaultViewConfig } from "../../../../src/panels/lovelace/common/generate-lovelace-config";
|
import { generateDefaultViewConfig } from "../../../../src/panels/lovelace/common/generate-lovelace-config";
|
||||||
import "./hc-layout";
|
import "./hc-layout";
|
||||||
import "@material/mwc-button/mwc-button";
|
import "@material/mwc-button/mwc-button";
|
||||||
@@ -42,13 +42,13 @@ class HcCast extends LitElement {
|
|||||||
|
|
||||||
@property() public castManager!: CastManager;
|
@property() public castManager!: CastManager;
|
||||||
|
|
||||||
@property() private askWrite = false;
|
@internalProperty() private askWrite = false;
|
||||||
|
|
||||||
@property() private lovelaceConfig?: LovelaceConfig | null;
|
@internalProperty() private lovelaceConfig?: LovelaceConfig | null;
|
||||||
|
|
||||||
protected render(): TemplateResult {
|
protected render(): TemplateResult {
|
||||||
if (this.lovelaceConfig === undefined) {
|
if (this.lovelaceConfig === undefined) {
|
||||||
return html` <loading-screen></loading-screen>> `;
|
return html` <hass-loading-screen no-toolbar></hass-loading-screen>> `;
|
||||||
}
|
}
|
||||||
|
|
||||||
const error =
|
const error =
|
||||||
@@ -83,7 +83,7 @@ class HcCast extends LitElement {
|
|||||||
? html`
|
? html`
|
||||||
<p class="center-item">
|
<p class="center-item">
|
||||||
<mwc-button raised @click=${this._handleLaunch}>
|
<mwc-button raised @click=${this._handleLaunch}>
|
||||||
<iron-icon icon="hass:cast"></iron-icon>
|
<ha-icon icon="hass:cast"></ha-icon>
|
||||||
Start Casting
|
Start Casting
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
</p>
|
</p>
|
||||||
@@ -121,7 +121,7 @@ class HcCast extends LitElement {
|
|||||||
${this.castManager.status
|
${this.castManager.status
|
||||||
? html`
|
? html`
|
||||||
<mwc-button @click=${this._handleLaunch}>
|
<mwc-button @click=${this._handleLaunch}>
|
||||||
<iron-icon icon="hass:cast-connected"></iron-icon>
|
<ha-icon icon="hass:cast-connected"></ha-icon>
|
||||||
Manage
|
Manage
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
`
|
`
|
||||||
@@ -243,7 +243,7 @@ class HcCast extends LitElement {
|
|||||||
color: var(--secondary-text-color);
|
color: var(--secondary-text-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
mwc-button iron-icon {
|
mwc-button ha-icon {
|
||||||
margin-right: 8px;
|
margin-right: 8px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import "@material/mwc-button";
|
import "@material/mwc-button";
|
||||||
import "@polymer/iron-icon";
|
|
||||||
import "@polymer/paper-input/paper-input";
|
import "@polymer/paper-input/paper-input";
|
||||||
import {
|
import {
|
||||||
Auth,
|
Auth,
|
||||||
@@ -18,8 +17,8 @@ import {
|
|||||||
customElement,
|
customElement,
|
||||||
html,
|
html,
|
||||||
LitElement,
|
LitElement,
|
||||||
property,
|
|
||||||
TemplateResult,
|
TemplateResult,
|
||||||
|
internalProperty,
|
||||||
} from "lit-element";
|
} from "lit-element";
|
||||||
import { CastManager, getCastManager } from "../../../../src/cast/cast_manager";
|
import { CastManager, getCastManager } from "../../../../src/cast/cast_manager";
|
||||||
import { castSendShowDemo } from "../../../../src/cast/receiver_messages";
|
import { castSendShowDemo } from "../../../../src/cast/receiver_messages";
|
||||||
@@ -27,7 +26,8 @@ import {
|
|||||||
loadTokens,
|
loadTokens,
|
||||||
saveTokens,
|
saveTokens,
|
||||||
} from "../../../../src/common/auth/token_storage";
|
} from "../../../../src/common/auth/token_storage";
|
||||||
import "../../../../src/layouts/loading-screen";
|
import "../../../../src/components/ha-icon";
|
||||||
|
import "../../../../src/layouts/hass-loading-screen";
|
||||||
import { registerServiceWorker } from "../../../../src/util/register-service-worker";
|
import { registerServiceWorker } from "../../../../src/util/register-service-worker";
|
||||||
import "./hc-layout";
|
import "./hc-layout";
|
||||||
|
|
||||||
@@ -60,19 +60,19 @@ const INTRO = html`
|
|||||||
|
|
||||||
@customElement("hc-connect")
|
@customElement("hc-connect")
|
||||||
export class HcConnect extends LitElement {
|
export class HcConnect extends LitElement {
|
||||||
@property() private loading = false;
|
@internalProperty() private loading = false;
|
||||||
|
|
||||||
// If we had stored credentials but we cannot connect,
|
// If we had stored credentials but we cannot connect,
|
||||||
// show a screen asking retry or logout.
|
// show a screen asking retry or logout.
|
||||||
@property() private cannotConnect = false;
|
@internalProperty() private cannotConnect = false;
|
||||||
|
|
||||||
@property() private error?: string | TemplateResult;
|
@internalProperty() private error?: string | TemplateResult;
|
||||||
|
|
||||||
@property() private auth?: Auth;
|
@internalProperty() private auth?: Auth;
|
||||||
|
|
||||||
@property() private connection?: Connection;
|
@internalProperty() private connection?: Connection;
|
||||||
|
|
||||||
@property() private castManager?: CastManager | null;
|
@internalProperty() private castManager?: CastManager | null;
|
||||||
|
|
||||||
private openDemo = false;
|
private openDemo = false;
|
||||||
|
|
||||||
@@ -98,7 +98,7 @@ export class HcConnect extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (this.castManager === undefined || this.loading) {
|
if (this.castManager === undefined || this.loading) {
|
||||||
return html` <loading-screen></loading-screen> `;
|
return html` <hass-loading-screen no-toolbar></hass-loading-screen> `;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.castManager === null) {
|
if (this.castManager === null) {
|
||||||
@@ -136,11 +136,11 @@ export class HcConnect extends LitElement {
|
|||||||
<div class="card-actions">
|
<div class="card-actions">
|
||||||
<mwc-button @click=${this._handleDemo}>
|
<mwc-button @click=${this._handleDemo}>
|
||||||
Show Demo
|
Show Demo
|
||||||
<iron-icon
|
<ha-icon
|
||||||
.icon=${this.castManager.castState === "CONNECTED"
|
.icon=${this.castManager.castState === "CONNECTED"
|
||||||
? "hass:cast-connected"
|
? "hass:cast-connected"
|
||||||
: "hass:cast"}
|
: "hass:cast"}
|
||||||
></iron-icon>
|
></ha-icon>
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
<div class="spacer"></div>
|
<div class="spacer"></div>
|
||||||
<mwc-button @click=${this._handleConnect}>Authorize</mwc-button>
|
<mwc-button @click=${this._handleConnect}>Authorize</mwc-button>
|
||||||
@@ -184,7 +184,7 @@ export class HcConnect extends LitElement {
|
|||||||
this.castManager = null;
|
this.castManager = null;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
registerServiceWorker(false);
|
registerServiceWorker(this, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _handleDemo() {
|
private async _handleDemo() {
|
||||||
@@ -316,7 +316,7 @@ export class HcConnect extends LitElement {
|
|||||||
color: darkred;
|
color: darkred;
|
||||||
}
|
}
|
||||||
|
|
||||||
mwc-button iron-icon {
|
mwc-button ha-icon {
|
||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class HcLayout extends LitElement {
|
|||||||
<ha-card>
|
<ha-card>
|
||||||
<div class="layout">
|
<div class="layout">
|
||||||
<img class="hero" src="/images/google-nest-hub.png" />
|
<img class="hero" src="/images/google-nest-hub.png" />
|
||||||
<div class="card-header">
|
<h1 class="card-header">
|
||||||
Home Assistant Cast${this.subtitle ? ` – ${this.subtitle}` : ""}
|
Home Assistant Cast${this.subtitle ? ` – ${this.subtitle}` : ""}
|
||||||
${this.auth
|
${this.auth
|
||||||
? html`
|
? html`
|
||||||
@@ -44,7 +44,7 @@ class HcLayout extends LitElement {
|
|||||||
</div>
|
</div>
|
||||||
`
|
`
|
||||||
: ""}
|
: ""}
|
||||||
</div>
|
</h1>
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</div>
|
</div>
|
||||||
</ha-card>
|
</ha-card>
|
||||||
|
|||||||
@@ -6,13 +6,60 @@ import { castContext } from "./cast_context";
|
|||||||
import { HcMain } from "./layout/hc-main";
|
import { HcMain } from "./layout/hc-main";
|
||||||
import { ReceivedMessage } from "./types";
|
import { ReceivedMessage } from "./types";
|
||||||
|
|
||||||
const controller = new HcMain();
|
const lovelaceController = new HcMain();
|
||||||
document.body.append(controller);
|
document.body.append(lovelaceController);
|
||||||
|
|
||||||
|
const mediaPlayer = document.createElement("cast-media-player");
|
||||||
|
mediaPlayer.style.display = "none";
|
||||||
|
document.body.append(mediaPlayer);
|
||||||
|
const playerStylesAdded = false;
|
||||||
|
|
||||||
|
let controls: HTMLElement | null;
|
||||||
|
|
||||||
|
const setTouchControlsVisibility = (visible: boolean) => {
|
||||||
|
if (!castContext.getDeviceCapabilities().touch_input_supported) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
controls =
|
||||||
|
controls ||
|
||||||
|
(document.body.querySelector("touch-controls") as HTMLElement | null);
|
||||||
|
if (controls) {
|
||||||
|
controls.style.display = visible ? "initial" : "none";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const showLovelaceController = () => {
|
||||||
|
mediaPlayer.style.display = "none";
|
||||||
|
lovelaceController.style.display = "initial";
|
||||||
|
document.body.setAttribute("style", "overflow-y: auto !important");
|
||||||
|
setTouchControlsVisibility(false);
|
||||||
|
};
|
||||||
|
|
||||||
|
const showMediaPlayer = () => {
|
||||||
|
lovelaceController.style.display = "none";
|
||||||
|
mediaPlayer.style.display = "initial";
|
||||||
|
document.body.removeAttribute("style");
|
||||||
|
setTouchControlsVisibility(true);
|
||||||
|
if (!playerStylesAdded) {
|
||||||
|
const style = document.createElement("style");
|
||||||
|
style.innerHTML = `
|
||||||
|
body {
|
||||||
|
--logo-image: url('https://www.home-assistant.io/images/home-assistant-logo.svg');
|
||||||
|
--logo-repeat: no-repeat;
|
||||||
|
--playback-logo-image: url('https://www.home-assistant.io/images/home-assistant-logo.svg');
|
||||||
|
--theme-hue: 200;
|
||||||
|
--progress-color: #03a9f4;
|
||||||
|
--splash-image: url('https://home-assistant.io/images/cast/splash.png');
|
||||||
|
--splash-size: cover;
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
document.head.appendChild(style);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const options = new cast.framework.CastReceiverOptions();
|
const options = new cast.framework.CastReceiverOptions();
|
||||||
options.disableIdleTimeout = true;
|
options.disableIdleTimeout = true;
|
||||||
options.customNamespaces = {
|
options.customNamespaces = {
|
||||||
// @ts-ignore
|
|
||||||
[CAST_NS]: cast.framework.system.MessageType.JSON,
|
[CAST_NS]: cast.framework.system.MessageType.JSON,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -30,13 +77,61 @@ options.uiConfig = new cast.framework.ui.UiConfig();
|
|||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
options.uiConfig.touchScreenOptimizedApp = true;
|
options.uiConfig.touchScreenOptimizedApp = true;
|
||||||
|
|
||||||
|
castContext.setInactivityTimeout(86400); // 1 day
|
||||||
|
|
||||||
castContext.addCustomMessageListener(
|
castContext.addCustomMessageListener(
|
||||||
CAST_NS,
|
CAST_NS,
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
(ev: ReceivedMessage<HassMessage>) => {
|
(ev: ReceivedMessage<HassMessage>) => {
|
||||||
|
// We received a show Lovelace command, stop media from playing, hide media player and show Lovelace controller
|
||||||
|
if (
|
||||||
|
playerManager.getPlayerState() !==
|
||||||
|
cast.framework.messages.PlayerState.IDLE
|
||||||
|
) {
|
||||||
|
playerManager.stop();
|
||||||
|
} else {
|
||||||
|
showLovelaceController();
|
||||||
|
}
|
||||||
const msg = ev.data;
|
const msg = ev.data;
|
||||||
msg.senderId = ev.senderId;
|
msg.senderId = ev.senderId;
|
||||||
controller.processIncomingMessage(msg);
|
lovelaceController.processIncomingMessage(msg);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
const playerManager = castContext.getPlayerManager();
|
||||||
|
|
||||||
|
playerManager.setMessageInterceptor(
|
||||||
|
cast.framework.messages.MessageType.LOAD,
|
||||||
|
(loadRequestData) => {
|
||||||
|
// We received a play media command, hide Lovelace and show media player
|
||||||
|
showMediaPlayer();
|
||||||
|
const media = loadRequestData.media;
|
||||||
|
// Special handling if it came from Google Assistant
|
||||||
|
if (media.entity) {
|
||||||
|
media.contentId = media.entity;
|
||||||
|
media.streamType = cast.framework.messages.StreamType.LIVE;
|
||||||
|
media.contentType = "application/vnd.apple.mpegurl";
|
||||||
|
// @ts-ignore
|
||||||
|
media.hlsVideoSegmentFormat =
|
||||||
|
cast.framework.messages.HlsVideoSegmentFormat.FMP4;
|
||||||
|
}
|
||||||
|
return loadRequestData;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
playerManager.addEventListener(
|
||||||
|
cast.framework.events.EventType.MEDIA_STATUS,
|
||||||
|
(event) => {
|
||||||
|
if (
|
||||||
|
event.mediaStatus?.playerState ===
|
||||||
|
cast.framework.messages.PlayerState.IDLE &&
|
||||||
|
event.mediaStatus?.idleReason &&
|
||||||
|
event.mediaStatus?.idleReason !==
|
||||||
|
cast.framework.messages.IdleReason.INTERRUPTED
|
||||||
|
) {
|
||||||
|
// media finished or stopped, return to default Lovelace
|
||||||
|
showLovelaceController();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,10 @@
|
|||||||
import { customElement, html, property, TemplateResult } from "lit-element";
|
import {
|
||||||
|
customElement,
|
||||||
|
html,
|
||||||
|
property,
|
||||||
|
internalProperty,
|
||||||
|
TemplateResult,
|
||||||
|
} from "lit-element";
|
||||||
import { mockHistory } from "../../../../demo/src/stubs/history";
|
import { mockHistory } from "../../../../demo/src/stubs/history";
|
||||||
import { LovelaceConfig } from "../../../../src/data/lovelace";
|
import { LovelaceConfig } from "../../../../src/data/lovelace";
|
||||||
import {
|
import {
|
||||||
@@ -13,9 +19,9 @@ import "./hc-lovelace";
|
|||||||
|
|
||||||
@customElement("hc-demo")
|
@customElement("hc-demo")
|
||||||
class HcDemo extends HassElement {
|
class HcDemo extends HassElement {
|
||||||
@property() public lovelacePath!: string;
|
@property({ attribute: false }) public lovelacePath!: string;
|
||||||
|
|
||||||
@property() private _lovelaceConfig?: LovelaceConfig;
|
@internalProperty() private _lovelaceConfig?: LovelaceConfig;
|
||||||
|
|
||||||
protected render(): TemplateResult {
|
protected render(): TemplateResult {
|
||||||
if (!this._lovelaceConfig) {
|
if (!this._lovelaceConfig) {
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { HomeAssistant } from "../../../../src/types";
|
|||||||
|
|
||||||
@customElement("hc-launch-screen")
|
@customElement("hc-launch-screen")
|
||||||
class HcLaunchScreen extends LitElement {
|
class HcLaunchScreen extends LitElement {
|
||||||
@property() public hass?: HomeAssistant;
|
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||||
|
|
||||||
@property() public error?: string;
|
@property() public error?: string;
|
||||||
|
|
||||||
|
|||||||
@@ -9,19 +9,20 @@ import {
|
|||||||
} from "lit-element";
|
} from "lit-element";
|
||||||
import { LovelaceConfig } from "../../../../src/data/lovelace";
|
import { LovelaceConfig } from "../../../../src/data/lovelace";
|
||||||
import { Lovelace } from "../../../../src/panels/lovelace/types";
|
import { Lovelace } from "../../../../src/panels/lovelace/types";
|
||||||
import "../../../../src/panels/lovelace/views/hui-panel-view";
|
|
||||||
import "../../../../src/panels/lovelace/views/hui-view";
|
import "../../../../src/panels/lovelace/views/hui-view";
|
||||||
import { HomeAssistant } from "../../../../src/types";
|
import { HomeAssistant } from "../../../../src/types";
|
||||||
import "./hc-launch-screen";
|
import "./hc-launch-screen";
|
||||||
|
|
||||||
@customElement("hc-lovelace")
|
@customElement("hc-lovelace")
|
||||||
class HcLovelace extends LitElement {
|
class HcLovelace extends LitElement {
|
||||||
@property() public hass!: HomeAssistant;
|
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||||
|
|
||||||
@property() public lovelaceConfig!: LovelaceConfig;
|
@property({ attribute: false }) public lovelaceConfig!: LovelaceConfig;
|
||||||
|
|
||||||
@property() public viewPath?: string | number;
|
@property() public viewPath?: string | number;
|
||||||
|
|
||||||
|
public urlPath?: string | null;
|
||||||
|
|
||||||
protected render(): TemplateResult {
|
protected render(): TemplateResult {
|
||||||
const index = this._viewIndex;
|
const index = this._viewIndex;
|
||||||
if (index === undefined) {
|
if (index === undefined) {
|
||||||
@@ -35,6 +36,7 @@ class HcLovelace extends LitElement {
|
|||||||
const lovelace: Lovelace = {
|
const lovelace: Lovelace = {
|
||||||
config: this.lovelaceConfig,
|
config: this.lovelaceConfig,
|
||||||
editMode: false,
|
editMode: false,
|
||||||
|
urlPath: this.urlPath!,
|
||||||
enableFullEditMode: () => undefined,
|
enableFullEditMode: () => undefined,
|
||||||
mode: "storage",
|
mode: "storage",
|
||||||
language: "en",
|
language: "en",
|
||||||
@@ -42,22 +44,13 @@ class HcLovelace extends LitElement {
|
|||||||
deleteConfig: async () => undefined,
|
deleteConfig: async () => undefined,
|
||||||
setEditMode: () => undefined,
|
setEditMode: () => undefined,
|
||||||
};
|
};
|
||||||
return this.lovelaceConfig.views[index].panel
|
return html`
|
||||||
? html`
|
<hui-view
|
||||||
<hui-panel-view
|
.hass=${this.hass}
|
||||||
.hass=${this.hass}
|
.lovelace=${lovelace}
|
||||||
.lovelace=${lovelace}
|
.index=${index}
|
||||||
.config=${this.lovelaceConfig.views[index]}
|
></hui-view>
|
||||||
></hui-panel-view>
|
`;
|
||||||
`
|
|
||||||
: html`
|
|
||||||
<hui-view
|
|
||||||
.hass=${this.hass}
|
|
||||||
.lovelace=${lovelace}
|
|
||||||
.index=${index}
|
|
||||||
columns="2"
|
|
||||||
></hui-view>
|
|
||||||
`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected updated(changedProps) {
|
protected updated(changedProps) {
|
||||||
@@ -73,7 +66,7 @@ class HcLovelace extends LitElement {
|
|||||||
|
|
||||||
if (configBackground) {
|
if (configBackground) {
|
||||||
(this.shadowRoot!.querySelector(
|
(this.shadowRoot!.querySelector(
|
||||||
"hui-view, hui-panel-view"
|
"hui-view"
|
||||||
) as HTMLElement)!.style.setProperty(
|
) as HTMLElement)!.style.setProperty(
|
||||||
"--lovelace-background",
|
"--lovelace-background",
|
||||||
configBackground
|
configBackground
|
||||||
|
|||||||
@@ -3,7 +3,12 @@ import {
|
|||||||
getAuth,
|
getAuth,
|
||||||
UnsubscribeFunc,
|
UnsubscribeFunc,
|
||||||
} from "home-assistant-js-websocket";
|
} from "home-assistant-js-websocket";
|
||||||
import { customElement, html, property, TemplateResult } from "lit-element";
|
import {
|
||||||
|
customElement,
|
||||||
|
html,
|
||||||
|
internalProperty,
|
||||||
|
TemplateResult,
|
||||||
|
} from "lit-element";
|
||||||
import { CAST_NS } from "../../../../src/cast/const";
|
import { CAST_NS } from "../../../../src/cast/const";
|
||||||
import {
|
import {
|
||||||
ConnectMessage,
|
ConnectMessage,
|
||||||
@@ -31,13 +36,13 @@ let resourcesLoaded = false;
|
|||||||
|
|
||||||
@customElement("hc-main")
|
@customElement("hc-main")
|
||||||
export class HcMain extends HassElement {
|
export class HcMain extends HassElement {
|
||||||
@property() private _showDemo = false;
|
@internalProperty() private _showDemo = false;
|
||||||
|
|
||||||
@property() private _lovelaceConfig?: LovelaceConfig;
|
@internalProperty() private _lovelaceConfig?: LovelaceConfig;
|
||||||
|
|
||||||
@property() private _lovelacePath: string | number | null = null;
|
@internalProperty() private _lovelacePath: string | number | null = null;
|
||||||
|
|
||||||
@property() private _error?: string;
|
@internalProperty() private _error?: string;
|
||||||
|
|
||||||
private _unsubLovelace?: UnsubscribeFunc;
|
private _unsubLovelace?: UnsubscribeFunc;
|
||||||
|
|
||||||
@@ -82,6 +87,8 @@ export class HcMain extends HassElement {
|
|||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
.lovelaceConfig=${this._lovelaceConfig}
|
.lovelaceConfig=${this._lovelaceConfig}
|
||||||
.viewPath=${this._lovelacePath}
|
.viewPath=${this._lovelacePath}
|
||||||
|
.urlPath=${this._urlPath}
|
||||||
|
@config-refresh=${this._generateLovelaceConfig}
|
||||||
></hc-lovelace>
|
></hc-lovelace>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
@@ -90,15 +97,17 @@ export class HcMain extends HassElement {
|
|||||||
super.firstUpdated(changedProps);
|
super.firstUpdated(changedProps);
|
||||||
import("../second-load");
|
import("../second-load");
|
||||||
window.addEventListener("location-changed", () => {
|
window.addEventListener("location-changed", () => {
|
||||||
if (location.pathname.startsWith("/lovelace/")) {
|
const panelPath = `/${this._urlPath || "lovelace"}/`;
|
||||||
this._lovelacePath = location.pathname.substr(10);
|
if (location.pathname.startsWith(panelPath)) {
|
||||||
|
this._lovelacePath = location.pathname.substr(panelPath.length);
|
||||||
this._sendStatus();
|
this._sendStatus();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
document.body.addEventListener("click", (ev) => {
|
document.body.addEventListener("click", (ev) => {
|
||||||
|
const panelPath = `/${this._urlPath || "lovelace"}/`;
|
||||||
const href = isNavigationClick(ev);
|
const href = isNavigationClick(ev);
|
||||||
if (href && href.startsWith("/lovelace/")) {
|
if (href && href.startsWith(panelPath)) {
|
||||||
this._lovelacePath = href.substr(10);
|
this._lovelacePath = href.substr(panelPath.length);
|
||||||
this._sendStatus();
|
this._sendStatus();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -170,10 +179,10 @@ export class HcMain extends HassElement {
|
|||||||
this._error = "Cannot show Lovelace because we're not connected.";
|
this._error = "Cannot show Lovelace because we're not connected.";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (msg.urlPath === "lovelace") {
|
||||||
|
msg.urlPath = null;
|
||||||
|
}
|
||||||
if (!this._unsubLovelace || this._urlPath !== msg.urlPath) {
|
if (!this._unsubLovelace || this._urlPath !== msg.urlPath) {
|
||||||
if (msg.urlPath === "lovelace") {
|
|
||||||
msg.urlPath = null;
|
|
||||||
}
|
|
||||||
this._urlPath = msg.urlPath;
|
this._urlPath = msg.urlPath;
|
||||||
if (this._unsubLovelace) {
|
if (this._unsubLovelace) {
|
||||||
this._unsubLovelace();
|
this._unsubLovelace();
|
||||||
@@ -189,14 +198,11 @@ export class HcMain extends HassElement {
|
|||||||
this._handleNewLovelaceConfig(lovelaceConfig)
|
this._handleNewLovelaceConfig(lovelaceConfig)
|
||||||
);
|
);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
// eslint-disable-next-line
|
||||||
|
console.log("Error fetching Lovelace configuration", err, msg);
|
||||||
// Generate a Lovelace config.
|
// Generate a Lovelace config.
|
||||||
this._unsubLovelace = () => undefined;
|
this._unsubLovelace = () => undefined;
|
||||||
const { generateLovelaceConfigFromHass } = await import(
|
await this._generateLovelaceConfig();
|
||||||
"../../../../src/panels/lovelace/common/generate-lovelace-config"
|
|
||||||
);
|
|
||||||
this._handleNewLovelaceConfig(
|
|
||||||
await generateLovelaceConfigFromHass(this.hass!)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!resourcesLoaded) {
|
if (!resourcesLoaded) {
|
||||||
@@ -210,12 +216,19 @@ export class HcMain extends HassElement {
|
|||||||
}
|
}
|
||||||
this._showDemo = false;
|
this._showDemo = false;
|
||||||
this._lovelacePath = msg.viewPath;
|
this._lovelacePath = msg.viewPath;
|
||||||
if (castContext.getDeviceCapabilities().touch_input_supported) {
|
|
||||||
this._breakFree();
|
|
||||||
}
|
|
||||||
this._sendStatus();
|
this._sendStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async _generateLovelaceConfig() {
|
||||||
|
const { generateLovelaceConfigFromHass } = await import(
|
||||||
|
"../../../../src/panels/lovelace/common/generate-lovelace-config"
|
||||||
|
);
|
||||||
|
this._handleNewLovelaceConfig(
|
||||||
|
await generateLovelaceConfigFromHass(this.hass!)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
private _handleNewLovelaceConfig(lovelaceConfig: LovelaceConfig) {
|
private _handleNewLovelaceConfig(lovelaceConfig: LovelaceConfig) {
|
||||||
castContext.setApplicationState(lovelaceConfig.title!);
|
castContext.setApplicationState(lovelaceConfig.title!);
|
||||||
this._lovelaceConfig = lovelaceConfig;
|
this._lovelaceConfig = lovelaceConfig;
|
||||||
@@ -226,9 +239,6 @@ export class HcMain extends HassElement {
|
|||||||
this._showDemo = true;
|
this._showDemo = true;
|
||||||
this._lovelacePath = "overview";
|
this._lovelacePath = "overview";
|
||||||
this._sendStatus();
|
this._sendStatus();
|
||||||
if (castContext.getDeviceCapabilities().touch_input_supported) {
|
|
||||||
this._breakFree();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -249,14 +259,6 @@ export class HcMain extends HassElement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private _breakFree() {
|
|
||||||
const controls = document.body.querySelector("touch-controls");
|
|
||||||
if (controls) {
|
|
||||||
controls.remove();
|
|
||||||
}
|
|
||||||
document.body.setAttribute("style", "overflow-y: auto !important");
|
|
||||||
}
|
|
||||||
|
|
||||||
private sendMessage(senderId: string, response: any) {
|
private sendMessage(senderId: string, response: any) {
|
||||||
castContext.sendCustomMessage(CAST_NS, senderId, response);
|
castContext.sendCustomMessage(CAST_NS, senderId, response);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import "web-animations-js/web-animations-next-lite.min";
|
import "web-animations-js/web-animations-next-lite.min";
|
||||||
import "../../../src/components/ha-iconset-svg";
|
|
||||||
import "../../../src/resources/hass-icons";
|
|
||||||
import "../../../src/resources/roboto";
|
import "../../../src/resources/roboto";
|
||||||
|
import "../../../src/resources/ha-style";
|
||||||
import "./layout/hc-lovelace";
|
import "./layout/hc-lovelace";
|
||||||
|
|||||||
@@ -1,254 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Gewapen",
|
|
||||||
"armed_away": "Gewapend weg",
|
|
||||||
"armed_custom_bypass": "Gewapende pasgemaakte omseil",
|
|
||||||
"armed_home": "Gewapend tuis",
|
|
||||||
"armed_night": "Gewapend nag",
|
|
||||||
"arming": "Bewapen Tans",
|
|
||||||
"disarmed": "Ontwapen",
|
|
||||||
"disarming": "Ontwapen Tans",
|
|
||||||
"pending": "Hangende",
|
|
||||||
"triggered": "Geaktiveer"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Af",
|
|
||||||
"on": "Aan"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normaal",
|
|
||||||
"on": "Laag"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Normaal",
|
|
||||||
"on": "Koud"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Ontkoppel",
|
|
||||||
"on": "Gekoppel"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Af",
|
|
||||||
"on": "Aan"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Toe",
|
|
||||||
"on": "Oop"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Toe",
|
|
||||||
"on": "Oop"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Ongemerk",
|
|
||||||
"on": "Bespeur"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Normaal",
|
|
||||||
"on": "Warm"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Gesluit",
|
|
||||||
"on": "Oopgesluit"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Droog",
|
|
||||||
"on": "Nat"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Ongemerk",
|
|
||||||
"on": "Bespeur"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Ongemerk",
|
|
||||||
"on": "Bespeur"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Toe",
|
|
||||||
"on": "Oop"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Elders",
|
|
||||||
"on": "Tuis"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Probleem"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Veilige",
|
|
||||||
"on": "Onveilige"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Ongemerk",
|
|
||||||
"on": "Bespeur"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Ongemerk",
|
|
||||||
"on": "Bespeur"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Ongemerk",
|
|
||||||
"on": "Bespeur"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Toe",
|
|
||||||
"on": "Oop"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Af",
|
|
||||||
"on": "Aan"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Onaktief",
|
|
||||||
"recording": "Opname",
|
|
||||||
"streaming": "Stroming"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Outo",
|
|
||||||
"cool": "Koel",
|
|
||||||
"dry": "Droog",
|
|
||||||
"fan_only": "Slegs waaier",
|
|
||||||
"heat": "Hitte",
|
|
||||||
"heat_cool": "Verhit/Verkoel",
|
|
||||||
"off": "Af"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Stel op",
|
|
||||||
"configured": "Opgestel"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Toe",
|
|
||||||
"closing": "Sluiting",
|
|
||||||
"open": "Oop",
|
|
||||||
"opening": "Opening",
|
|
||||||
"stopped": "Gestop"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Af",
|
|
||||||
"on": "Aan",
|
|
||||||
"unavailable": "Nie beskikbaar nie",
|
|
||||||
"unknown": "Onbekend"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Tuis",
|
|
||||||
"not_home": "Elders"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Af",
|
|
||||||
"on": "Aan"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Toe",
|
|
||||||
"closing": "Sluiting",
|
|
||||||
"home": "Tuis",
|
|
||||||
"locked": "Gesluit",
|
|
||||||
"not_home": "Elders",
|
|
||||||
"off": "Af",
|
|
||||||
"ok": "OK",
|
|
||||||
"on": "Aan",
|
|
||||||
"open": "Oop",
|
|
||||||
"opening": "Opening",
|
|
||||||
"problem": "Probleem",
|
|
||||||
"stopped": "Gestop",
|
|
||||||
"unlocked": "Oopgesluit"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Af",
|
|
||||||
"on": "Aan"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Af",
|
|
||||||
"on": "Aan"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Gesluit",
|
|
||||||
"unlocked": "Oopgesluit"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Onaktief",
|
|
||||||
"off": "Af",
|
|
||||||
"on": "Aan",
|
|
||||||
"paused": "Onderbreek",
|
|
||||||
"playing": "Speel Tans",
|
|
||||||
"standby": "Gereed"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Tuis",
|
|
||||||
"not_home": "Elders"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "OK",
|
|
||||||
"problem": "Probleem"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Af",
|
|
||||||
"on": "Aan"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Toneeling"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Af",
|
|
||||||
"on": "Aan"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Af",
|
|
||||||
"on": "Aan"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Bo horison",
|
|
||||||
"below_horizon": "Onder horison"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Af",
|
|
||||||
"on": "Aan"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "aktief",
|
|
||||||
"idle": "onaktief",
|
|
||||||
"paused": "Onderbreek"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Skoonmaak",
|
|
||||||
"docked": "Vasgemeer by hawe",
|
|
||||||
"error": "Fout",
|
|
||||||
"idle": "Onaktief",
|
|
||||||
"off": "Af",
|
|
||||||
"on": "Aan",
|
|
||||||
"paused": "Onderbreek",
|
|
||||||
"returning": "Oppad terug hawe toe"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Helder, nag",
|
|
||||||
"cloudy": "Bewolk",
|
|
||||||
"fog": "Mis",
|
|
||||||
"hail": "Hael",
|
|
||||||
"lightning": "Weerlig",
|
|
||||||
"lightning-rainy": "Weerlig, Re\u00ebnagtig",
|
|
||||||
"partlycloudy": "Gedeeltelik bewolk",
|
|
||||||
"pouring": "Stort",
|
|
||||||
"rainy": "Re\u00ebnagtig",
|
|
||||||
"snowy": "Sneeuagtig",
|
|
||||||
"snowy-rainy": "Ysre\u00ebn",
|
|
||||||
"sunny": "Sonnig",
|
|
||||||
"windy": "Winderig",
|
|
||||||
"windy-variant": "Winderig"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Dood",
|
|
||||||
"initializing": "Inisialiseer",
|
|
||||||
"ready": "Gereed",
|
|
||||||
"sleeping": "Aan die slaap"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Dood ({query_stage})",
|
|
||||||
"initializing": "Inisialiseer ({query_stage})"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,240 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "\u0645\u0633\u0644\u062d",
|
|
||||||
"armed_away": "\u0645\u0641\u0639\u0651\u0644 \u0641\u064a \u0627\u0644\u062e\u0627\u0631\u062c",
|
|
||||||
"armed_custom_bypass": "\u062a\u062c\u0627\u0648\u0632 \u0627\u0644\u062a\u0641\u0639\u064a\u0644",
|
|
||||||
"armed_home": "\u0645\u0641\u0639\u0651\u0644 \u0641\u064a \u0627\u0644\u0645\u0646\u0632\u0644",
|
|
||||||
"armed_night": "\u0645\u0641\u0639\u0651\u0644 \u0644\u064a\u0644",
|
|
||||||
"arming": "\u062c\u0627\u0631\u064a \u0627\u0644\u062a\u0641\u0639\u064a\u0644",
|
|
||||||
"disarmed": "\u063a\u064a\u0631 \u0645\u0641\u0639\u0651\u0644",
|
|
||||||
"disarming": "\u0625\u064a\u0642\u0627\u0641 \u0627\u0644\u0625\u0646\u0630\u0627\u0631",
|
|
||||||
"pending": "\u0642\u064a\u062f \u0627\u0644\u0625\u0646\u062a\u0638\u0627\u0631",
|
|
||||||
"triggered": "\u0645\u0641\u0639\u0651\u0644"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "\u0625\u064a\u0642\u0627\u0641",
|
|
||||||
"on": "\u062a\u0634\u063a\u064a\u0644"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "\u0637\u0628\u064a\u0639\u064a",
|
|
||||||
"on": "\u0645\u0646\u062e\u0641\u0636"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "\u0637\u0628\u064a\u0639\u064a",
|
|
||||||
"on": "\u0628\u0627\u0631\u062f"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "\u0645\u0641\u0635\u0648\u0644",
|
|
||||||
"on": "\u0645\u062a\u0635\u0644"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u0625\u064a\u0642\u0627\u0641",
|
|
||||||
"on": "\u062a\u0634\u063a\u064a\u0644"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "\u0645\u063a\u0644\u0642",
|
|
||||||
"on": "\u0645\u0641\u062a\u0648\u062d"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "\u0645\u063a\u0644\u0642",
|
|
||||||
"on": "\u0645\u0641\u062a\u0648\u062d"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u0643\u0634\u0641",
|
|
||||||
"on": "\u062a\u0645 \u0627\u0644\u0643\u0634\u0641"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "\u0637\u0628\u064a\u0639\u064a",
|
|
||||||
"on": "\u062d\u0627\u0631"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "\u0645\u0642\u0641\u0644",
|
|
||||||
"on": "\u063a\u064a\u0631 \u0645\u0642\u0641\u0644"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "\u062c\u0627\u0641",
|
|
||||||
"on": "\u0645\u0628\u0644\u0644"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u0643\u0634\u0641",
|
|
||||||
"on": "\u062a\u0645 \u0627\u0644\u0643\u0634\u0641"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u0643\u0634\u0641",
|
|
||||||
"on": "\u062a\u0645 \u0627\u0644\u0643\u0634\u0641"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "\u0645\u0642\u0641\u0644",
|
|
||||||
"on": "\u0645\u0641\u062a\u0648\u062d"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "\u062e\u0627\u0631\u062c \u0627\u0644\u0645\u0646\u0632\u0644",
|
|
||||||
"on": "\u0641\u064a \u0627\u0644\u0645\u0646\u0632\u0644"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "\u0645\u0648\u0627\u0641\u0642",
|
|
||||||
"on": "\u0639\u0637\u0644"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "\u0623\u0645\u0646",
|
|
||||||
"on": "\u063a\u064a\u0631 \u0623\u0645\u0646"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u0643\u0634\u0641",
|
|
||||||
"on": "\u062a\u0645 \u0627\u0644\u0643\u0634\u0641"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u0643\u0634\u0641",
|
|
||||||
"on": "\u062a\u0645 \u0627\u0644\u0643\u0634\u0641"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "\u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u0643\u0634\u0641",
|
|
||||||
"on": "\u062a\u0645 \u0627\u0644\u0643\u0634\u0641"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "\u0645\u063a\u0644\u0642",
|
|
||||||
"on": "\u0645\u0641\u062a\u0648\u062d"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "\u0625\u064a\u0642\u0627\u0641",
|
|
||||||
"on": "\u062a\u0634\u063a\u064a\u0644"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "\u062e\u0627\u0645\u0644",
|
|
||||||
"recording": "\u062c\u0627\u0631\u064a \u0627\u0644\u062a\u0633\u062c\u064a\u0644",
|
|
||||||
"streaming": "\u062c\u0627\u0631\u064a \u0627\u0644\u0628\u062b"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "\u062a\u0644\u0642\u0627\u0626\u064a",
|
|
||||||
"cool": "\u062a\u0628\u0631\u064a\u062f",
|
|
||||||
"dry": "\u062c\u0627\u0641",
|
|
||||||
"fan_only": "\u0627\u0644\u0645\u0631\u0648\u062d\u0629 \u0641\u0642\u0637",
|
|
||||||
"heat": "\u062a\u062f\u0641\u0626\u0629",
|
|
||||||
"off": "\u0625\u064a\u0642\u0627\u0641"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "\u0625\u0639\u062f\u0627\u062f",
|
|
||||||
"configured": "\u062a\u0645 \u0627\u0644\u0625\u0639\u062f\u0627\u062f"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "\u0645\u063a\u0644\u0642",
|
|
||||||
"closing": "\u062c\u0627\u0631\u064a \u0627\u0644\u0627\u063a\u0644\u0627\u0642",
|
|
||||||
"open": "\u0645\u0641\u062a\u0648\u062d",
|
|
||||||
"opening": "\u062c\u0627\u0631\u064a \u0627\u0644\u0641\u062a\u062d",
|
|
||||||
"stopped": "\u0645\u0648\u0642\u0641"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u0625\u064a\u0642\u0627\u0641",
|
|
||||||
"on": "\u062a\u0634\u063a\u064a\u0644",
|
|
||||||
"unavailable": "\u063a\u064a\u0631 \u0645\u062a\u0648\u0641\u0631",
|
|
||||||
"unknown": "\u063a\u064a\u0631 \u0645\u0639\u0631\u0648\u0641"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "\u0641\u064a \u0627\u0644\u0645\u0646\u0632\u0644",
|
|
||||||
"not_home": "\u062e\u0627\u0631\u062c \u0627\u0644\u0645\u0646\u0632\u0644"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "\u0625\u064a\u0642\u0627\u0641",
|
|
||||||
"on": "\u0642\u064a\u062f \u0627\u0644\u062a\u0634\u063a\u064a\u0644"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "\u0645\u063a\u0644\u0642 ",
|
|
||||||
"closing": "\u062c\u0627\u0631\u064a \u0627\u0644\u0627\u063a\u0644\u0627\u0642 ",
|
|
||||||
"home": "\u0641\u064a \u0627\u0644\u0645\u0646\u0632\u0644",
|
|
||||||
"locked": "\u0645\u0642\u0641\u0644 ",
|
|
||||||
"not_home": "\u0641\u064a \u0627\u0644\u062e\u0627\u0631\u062c",
|
|
||||||
"off": "\u0625\u064a\u0642\u0627\u0641",
|
|
||||||
"ok": "\u0623\u0648\u0643\u064a",
|
|
||||||
"on": "\u0642\u064a\u062f \u0627\u0644\u062a\u0634\u063a\u064a\u0644",
|
|
||||||
"open": "\u0645\u0641\u062a\u0648\u062d ",
|
|
||||||
"opening": "\u062c\u0627\u0631\u064a \u0627\u0644\u0641\u062a\u062d ",
|
|
||||||
"problem": "\u0645\u0634\u0643\u0644\u0629",
|
|
||||||
"stopped": "\u0645\u0648\u0642\u0641 ",
|
|
||||||
"unlocked": "\u063a\u064a\u0631 \u0645\u0642\u0641\u0644 "
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "\u0625\u064a\u0642\u0627\u0641",
|
|
||||||
"on": "\u0642\u064a\u062f \u0627\u0644\u062a\u0634\u063a\u064a\u0644"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "\u0625\u064a\u0642\u0627\u0641",
|
|
||||||
"on": "\u0642\u064a\u062f \u0627\u0644\u062a\u0634\u063a\u064a\u0644"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "\u0645\u0642\u0641\u0644",
|
|
||||||
"unlocked": "\u0645\u0641\u062a\u0648\u062d"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "\u062e\u0627\u0645\u0644",
|
|
||||||
"off": "\u0625\u064a\u0642\u0627\u0641",
|
|
||||||
"on": "\u0642\u064a\u062f \u0627\u0644\u062a\u0634\u063a\u064a\u0644",
|
|
||||||
"paused": "\u0645\u0648\u0642\u0651\u0641 \u0645\u0624\u0642\u062a\u0627",
|
|
||||||
"playing": "\u062c\u0627\u0631\u064a \u0627\u0644\u062a\u0634\u063a\u064a\u0644",
|
|
||||||
"standby": "\u0648\u0636\u0639 \u0627\u0644\u0625\u0646\u062a\u0638\u0627\u0631"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "\u0641\u064a \u0627\u0644\u0645\u0646\u0632\u0644",
|
|
||||||
"not_home": "\u062e\u0627\u0631\u062c \u0627\u0644\u0645\u0646\u0632\u0644"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "\u0623\u0648\u0643\u064a",
|
|
||||||
"problem": "\u0645\u0634\u0643\u0644\u0629"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "\u0625\u064a\u0642\u0627\u0641",
|
|
||||||
"on": "\u0642\u064a\u062f \u0627\u0644\u062a\u0634\u063a\u064a\u0644"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "\u0642\u0628\u062f \u0627\u0644\u0628\u062d\u062b"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "\u0625\u064a\u0642\u0627\u0641",
|
|
||||||
"on": "\u0642\u064a\u062f \u0627\u0644\u062a\u0634\u063a\u064a\u0644"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "\u0625\u064a\u0642\u0627\u0641",
|
|
||||||
"on": "\u0642\u064a\u062f \u0627\u0644\u062a\u0634\u063a\u064a\u0644"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "\u0641\u0648\u0642 \u0627\u0644\u0623\u0641\u0642",
|
|
||||||
"below_horizon": "\u062a\u062d\u062a \u0627\u0644\u0623\u0641\u0642"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "\u0625\u064a\u0642\u0627\u0641",
|
|
||||||
"on": "\u0645\u064f\u0634\u064e\u063a\u0651\u0644"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "\u0645\u0641\u0639\u0644",
|
|
||||||
"idle": "\u062e\u0627\u0645\u0644",
|
|
||||||
"paused": "\u0645\u0648\u0642\u0651\u0641 \u0645\u0624\u0642\u062a\u0627"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "\u062a\u0646\u0638\u064a\u0641",
|
|
||||||
"error": "\u062e\u0637\u0623",
|
|
||||||
"off": "\u0645\u0637\u0641\u0626",
|
|
||||||
"on": "\u0645\u0634\u063a\u0644",
|
|
||||||
"paused": "\u0645\u0648\u0642\u0651\u0641 \u0645\u0624\u0642\u062a\u0627",
|
|
||||||
"returning": "\u0627\u0644\u0639\u0648\u062f\u0629"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"cloudy": "Bewolkt",
|
|
||||||
"fog": "Mist",
|
|
||||||
"sunny": "\u0645\u0634\u0645\u0633"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "\u0645\u0641\u0635\u0648\u0644",
|
|
||||||
"initializing": "\u0642\u064a\u062f \u0627\u0644\u0625\u0646\u0634\u0627\u0621",
|
|
||||||
"ready": "\u062c\u0627\u0647\u0632",
|
|
||||||
"sleeping": "\u0646\u0627\u0626\u0645"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "\u0645\u0641\u0635\u0648\u0644 ({query_stage})",
|
|
||||||
"initializing": "\u0642\u064a\u062f \u0627\u0644\u0625\u0646\u0634\u0627\u0621 ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "\u041f\u043e\u0434 \u043e\u0445\u0440\u0430\u043d\u0430",
|
|
||||||
"armed_away": "\u041f\u043e\u0434 \u043e\u0445\u0440\u0430\u043d\u0430",
|
|
||||||
"armed_custom_bypass": "\u041f\u043e\u0434 \u043e\u0445\u0440\u0430\u043d\u0430",
|
|
||||||
"armed_home": "\u041f\u043e\u0434 \u043e\u0445\u0440\u0430\u043d\u0430 - \u0432\u043a\u044a\u0449\u0438",
|
|
||||||
"armed_night": "\u041f\u043e\u0434 \u043e\u0445\u0440\u0430\u043d\u0430 - \u043d\u043e\u0449",
|
|
||||||
"arming": "\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435",
|
|
||||||
"disarmed": "\u0414\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0430",
|
|
||||||
"disarming": "\u0414\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d\u0435",
|
|
||||||
"pending": "\u0412 \u043e\u0447\u0430\u043a\u0432\u0430\u043d\u0435",
|
|
||||||
"triggered": "\u0417\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u0430\u043d"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"on": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "\u041d\u043e\u0440\u043c\u0430\u043b\u043d\u0430",
|
|
||||||
"on": "\u0418\u0437\u0442\u043e\u0449\u0435\u043d\u0430"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "\u041d\u043e\u0440\u043c\u0430\u043b\u043d\u043e",
|
|
||||||
"on": "\u0421\u0442\u0443\u0434\u0435\u043d\u043e"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"on": "\u0421\u0432\u044a\u0440\u0437\u0430\u043d"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"on": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "\u0417\u0430\u0442\u0432\u043e\u0440\u0435\u043d\u0430",
|
|
||||||
"on": "\u041e\u0442\u0432\u043e\u0440\u0435\u043d\u0430"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "\u0417\u0430\u0442\u0432\u043e\u0440\u0435\u043d\u0430",
|
|
||||||
"on": "\u041e\u0442\u0432\u043e\u0440\u0435\u043d\u0430"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "\u0427\u0438\u0441\u0442\u043e",
|
|
||||||
"on": "\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0430\u043d"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "\u041d\u043e\u0440\u043c\u0430\u043b\u043d\u043e",
|
|
||||||
"on": "\u0413\u043e\u0440\u0435\u0449\u043e"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u043e",
|
|
||||||
"on": "\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "\u0421\u0443\u0445",
|
|
||||||
"on": "\u041c\u043e\u043a\u044a\u0440"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "\u0411\u0435\u0437 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435",
|
|
||||||
"on": "\u0414\u0432\u0438\u0436\u0435\u043d\u0438\u0435"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "\u0427\u0438\u0441\u0442\u043e",
|
|
||||||
"on": "\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0430\u043d"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "\u0417\u0430\u0442\u0432\u043e\u0440\u0435\u043d",
|
|
||||||
"on": "\u041e\u0442\u0432\u043e\u0440\u0435\u043d"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "\u041e\u0442\u0441\u044a\u0441\u0442\u0432\u0430",
|
|
||||||
"on": "\u0412\u043a\u044a\u0449\u0438"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "\u041e\u041a",
|
|
||||||
"on": "\u041f\u0440\u043e\u0431\u043b\u0435\u043c"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u0435\u043d",
|
|
||||||
"on": "\u041e\u043f\u0430\u0441\u043d\u043e\u0441\u0442"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "\u0427\u0438\u0441\u0442\u043e",
|
|
||||||
"on": "\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0430\u043d"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "\u0427\u0438\u0441\u0442\u043e",
|
|
||||||
"on": "\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0430\u043d"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "\u0427\u0438\u0441\u0442\u043e",
|
|
||||||
"on": "\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0430\u043d\u0430"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "\u0417\u0430\u0442\u0432\u043e\u0440\u0435\u043d",
|
|
||||||
"on": "\u041e\u0442\u0432\u043e\u0440\u0435\u043d"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"on": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "\u041d\u0435 \u0437\u0430\u043f\u0438\u0441\u0432\u0430",
|
|
||||||
"recording": "\u0417\u0430\u043f\u0438\u0441\u0432\u0430\u043d\u0435",
|
|
||||||
"streaming": "\u041f\u0440\u0435\u0434\u0430\u0432\u0430"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u043d",
|
|
||||||
"cool": "\u041e\u0445\u043b\u0430\u0436\u0434\u0430\u043d\u0435",
|
|
||||||
"dry": "\u0421\u0443\u0445",
|
|
||||||
"fan_only": "\u0421\u0430\u043c\u043e \u0432\u0435\u043d\u0442\u0438\u043b\u0430\u0442\u043e\u0440",
|
|
||||||
"heat": "\u041e\u0442\u043e\u043f\u043b\u0435\u043d\u0438\u0435",
|
|
||||||
"heat_cool": "\u041e\u0442\u043e\u043f\u043b\u0435\u043d\u0438\u0435/\u041e\u0445\u043b\u0430\u0436\u0434\u0430\u043d\u0435",
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0432\u0430\u043d\u0435",
|
|
||||||
"configured": "\u041d\u0430\u0441\u0442\u0440\u043e\u0435\u043d"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "\u0417\u0430\u0442\u0432\u043e\u0440\u0435\u043d\u0430",
|
|
||||||
"closing": "\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435",
|
|
||||||
"open": "\u041e\u0442\u0432\u043e\u0440\u0435\u043d\u0430",
|
|
||||||
"opening": "\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435",
|
|
||||||
"stopped": "\u0421\u043f\u0440\u044f\u043d\u0430"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"on": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"unavailable": "\u041d\u0435\u0434\u043e\u0441\u0442\u044a\u043f\u0435\u043d",
|
|
||||||
"unknown": "\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "\u0412\u043a\u044a\u0449\u0438",
|
|
||||||
"not_home": "\u041e\u0442\u0441\u044a\u0441\u0442\u0432\u0430"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"on": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "\u0417\u0430\u0442\u0432\u043e\u0440\u0435\u043d\u0430",
|
|
||||||
"closing": "\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435",
|
|
||||||
"home": "\u0412\u043a\u044a\u0449\u0438",
|
|
||||||
"locked": "\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0430",
|
|
||||||
"not_home": "\u041e\u0442\u0441\u044a\u0441\u0442\u0432\u0430",
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"ok": "\u041e\u041a",
|
|
||||||
"on": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0430",
|
|
||||||
"open": "\u041e\u0442\u0432\u043e\u0440\u0435\u043d\u0430",
|
|
||||||
"opening": "\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435",
|
|
||||||
"problem": "\u041f\u0440\u043e\u0431\u043b\u0435\u043c",
|
|
||||||
"stopped": "\u0421\u043f\u0440\u044f\u043d\u0430",
|
|
||||||
"unlocked": "\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"on": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d\u043e",
|
|
||||||
"on": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u043e"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"unlocked": "\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "\u041d\u0435\u0440\u0430\u0431\u043e\u0442\u0435\u0449",
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"on": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"paused": "\u0412 \u043f\u0430\u0443\u0437\u0430",
|
|
||||||
"playing": "\u0412\u044a\u0437\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0436\u0434\u0430\u043d\u0435",
|
|
||||||
"standby": "\u0420\u0435\u0436\u0438\u043c \u043d\u0430 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "\u0412\u043a\u044a\u0449\u0438",
|
|
||||||
"not_home": "\u041e\u0442\u0441\u044a\u0441\u0442\u0432\u0430"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "\u041e\u041a",
|
|
||||||
"problem": "\u041f\u0440\u043e\u0431\u043b\u0435\u043c"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"on": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "\u041f\u0440\u043e\u043c\u044f\u043d\u0430 \u043d\u0430 \u0441\u0446\u0435\u043d\u0430"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"on": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"on": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "\u041d\u0430\u0434 \u0445\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430",
|
|
||||||
"below_horizon": "\u041f\u043e\u0434 \u0445\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"on": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "\u0430\u043a\u0442\u0438\u0432\u0435\u043d",
|
|
||||||
"idle": "\u043d\u0435\u0440\u0430\u0431\u043e\u0442\u0435\u0449",
|
|
||||||
"paused": "\u0432 \u043f\u0430\u0443\u0437\u0430"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "\u041f\u043e\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435",
|
|
||||||
"docked": "\u0412 \u0431\u0430\u0437\u043e\u0432\u0430 \u0441\u0442\u0430\u043d\u0446\u0438\u044f",
|
|
||||||
"error": "\u0413\u0440\u0435\u0448\u043a\u0430",
|
|
||||||
"idle": "\u041d\u0435\u0440\u0430\u0431\u043e\u0442\u0435\u0449",
|
|
||||||
"off": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"on": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d",
|
|
||||||
"paused": "\u041f\u0430\u0443\u0437\u0430",
|
|
||||||
"returning": "\u0412\u0440\u044a\u0449\u0430\u043d\u0435 \u0432 \u0431\u0430\u0437\u043e\u0432\u0430\u0442\u0430 \u0441\u0442\u0430\u043d\u0446\u0438\u044f"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "\u042f\u0441\u043d\u043e, \u043d\u043e\u0449",
|
|
||||||
"cloudy": "\u041e\u0431\u043b\u0430\u0447\u043d\u043e",
|
|
||||||
"exceptional": "\u0418\u0437\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u043d\u043e",
|
|
||||||
"fog": "\u041c\u044a\u0433\u043b\u0430",
|
|
||||||
"hail": "\u0413\u0440\u0430\u0434\u0443\u0448\u043a\u0430",
|
|
||||||
"lightning": "\u0421\u0432\u0435\u0442\u043a\u0430\u0432\u0438\u0446\u0430",
|
|
||||||
"lightning-rainy": "\u0421\u0432\u0435\u0442\u043a\u0430\u0432\u0438\u0446\u0430, \u0434\u044a\u0436\u0434\u043e\u0432\u043d\u043e",
|
|
||||||
"partlycloudy": "\u0427\u0430\u0441\u0442\u0438\u0447\u043d\u0430 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0441\u0442",
|
|
||||||
"pouring": "\u041e\u0431\u0438\u043b\u0435\u043d \u0434\u044a\u0436\u0434",
|
|
||||||
"rainy": "\u0414\u044a\u0436\u0434\u043e\u0432\u043d\u043e",
|
|
||||||
"snowy": "\u0421\u043d\u0435\u0436\u043d\u043e",
|
|
||||||
"snowy-rainy": "\u0421\u043d\u0435\u0436\u043d\u043e, \u0434\u044a\u0436\u0434\u043e\u0432\u043d\u043e",
|
|
||||||
"sunny": "\u0421\u043b\u044a\u043d\u0447\u0435\u0432\u043e",
|
|
||||||
"windy": "\u0412\u0435\u0442\u0440\u043e\u0432\u0438\u0442\u043e",
|
|
||||||
"windy-variant": "\u0412\u0435\u0442\u0440\u043e\u0432\u0438\u0442\u043e"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "\u041c\u044a\u0440\u0442\u044a\u0432",
|
|
||||||
"initializing": "\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f",
|
|
||||||
"ready": "\u0413\u043e\u0442\u043e\u0432",
|
|
||||||
"sleeping": "\u0421\u043f\u044f\u0449"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "\u041c\u044a\u0440\u0442\u044a\u0432 ({query_stage})",
|
|
||||||
"initializing": "\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,194 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Aktiviran",
|
|
||||||
"armed_away": "Aktiviran izvan ku\u0107e",
|
|
||||||
"armed_custom_bypass": "Aktiviran pod specijalnim rezimom",
|
|
||||||
"armed_home": "Aktiviran kod ku\u0107e",
|
|
||||||
"armed_night": "Aktiviran no\u0107u",
|
|
||||||
"arming": "Aktivacija",
|
|
||||||
"disarmed": "Deaktiviran",
|
|
||||||
"disarming": "Deaktivacija",
|
|
||||||
"pending": "U is\u010dekivanju",
|
|
||||||
"triggered": "Pokrenut"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normalno",
|
|
||||||
"on": "Nisko"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Nepovezan",
|
|
||||||
"on": "Povezan"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "\u010cist",
|
|
||||||
"on": "Otkriven"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Suho",
|
|
||||||
"on": "Mokar"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "\u010cist",
|
|
||||||
"on": "Otkriven"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "\u010cist",
|
|
||||||
"on": "Otkriven"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Zatvoren",
|
|
||||||
"on": "Otvoren"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Odsutan",
|
|
||||||
"on": "Kod ku\u0107e"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Problem"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Siguran",
|
|
||||||
"on": "Nesiguran"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "\u010cist",
|
|
||||||
"on": "Otkriven"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "\u010cist",
|
|
||||||
"on": "Otkriven"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "\u010cist",
|
|
||||||
"on": "Otkriven"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Besposlen",
|
|
||||||
"recording": "Snimanje",
|
|
||||||
"streaming": "Predaja slike"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Auto",
|
|
||||||
"cool": "Hladno",
|
|
||||||
"dry": "Suh",
|
|
||||||
"fan_only": "Samo ventilator",
|
|
||||||
"heat": "Toplota",
|
|
||||||
"off": "Isklju\u010den"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Podesite",
|
|
||||||
"configured": "Konfigurirano"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Zatvoren",
|
|
||||||
"closing": "Zatvoreno",
|
|
||||||
"open": "Otvoren",
|
|
||||||
"opening": "Otvoreno",
|
|
||||||
"stopped": "Zaustavljen"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den",
|
|
||||||
"unavailable": "Nedostupan",
|
|
||||||
"unknown": "Nepoznat"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Kod ku\u0107e",
|
|
||||||
"not_home": "Odsutan"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Zatvoren",
|
|
||||||
"closing": "Zatvoreno",
|
|
||||||
"home": "Kod ku\u0107e",
|
|
||||||
"locked": "Zaklju\u010dan",
|
|
||||||
"not_home": "Odsutan",
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"ok": "OK",
|
|
||||||
"on": "Uklju\u010den",
|
|
||||||
"open": "Otvoren",
|
|
||||||
"opening": "Otvoreno",
|
|
||||||
"problem": "Problem",
|
|
||||||
"stopped": "Zaustavljen",
|
|
||||||
"unlocked": "Otklju\u010dan"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Zaklju\u010dan",
|
|
||||||
"unlocked": "Otklju\u010dan"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Besposlen",
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den",
|
|
||||||
"paused": "Pauziran",
|
|
||||||
"playing": "Prikazuje",
|
|
||||||
"standby": "U stanju \u010dekanja"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "OK",
|
|
||||||
"problem": "Problem"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Scena"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Iznad horizonta",
|
|
||||||
"below_horizon": "Ispod horizonta"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Mrtav",
|
|
||||||
"initializing": "Inicijalizacija",
|
|
||||||
"ready": "Spreman",
|
|
||||||
"sleeping": "Spava"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Mrtav ({query_stage})",
|
|
||||||
"initializing": "Inicijalizacija ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Activada",
|
|
||||||
"armed_away": "Activada, mode fora",
|
|
||||||
"armed_custom_bypass": "Activada, bypass personalitzat",
|
|
||||||
"armed_home": "Activada, mode a casa",
|
|
||||||
"armed_night": "Activada, mode nocturn",
|
|
||||||
"arming": "Activant",
|
|
||||||
"disarmed": "Desactivada",
|
|
||||||
"disarming": "Desactivant",
|
|
||||||
"pending": "Pendent",
|
|
||||||
"triggered": "Disparada"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Desactivat",
|
|
||||||
"on": "Activat"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Baixa"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Fred"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Desconnectat",
|
|
||||||
"on": "Connectat"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Desactivat",
|
|
||||||
"on": "Activat"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Tancada",
|
|
||||||
"on": "Oberta"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Tancada",
|
|
||||||
"on": "Oberta"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Lliure",
|
|
||||||
"on": "Detectat"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Calent"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Bloquejat",
|
|
||||||
"on": "Desbloquejat"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Sec",
|
|
||||||
"on": "Humit"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Lliure",
|
|
||||||
"on": "Detectat"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Lliure",
|
|
||||||
"on": "Detectat"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Tancat",
|
|
||||||
"on": "Obert"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Lliure",
|
|
||||||
"on": "Detectat"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "Correcte",
|
|
||||||
"on": "Problema"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Segur",
|
|
||||||
"on": "No segur"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Lliure",
|
|
||||||
"on": "Detectat"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Lliure",
|
|
||||||
"on": "Detectat"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Lliure",
|
|
||||||
"on": "Detectat"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Tancada",
|
|
||||||
"on": "Oberta"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Desactivat",
|
|
||||||
"on": "Activat"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Inactiu",
|
|
||||||
"recording": "Enregistrant",
|
|
||||||
"streaming": "Transmetent v\u00eddeo"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Autom\u00e0tic",
|
|
||||||
"cool": "Refredar",
|
|
||||||
"dry": "Assecar",
|
|
||||||
"fan_only": "Nom\u00e9s ventilador",
|
|
||||||
"heat": "Escalfar",
|
|
||||||
"heat_cool": "Escalfar/Refredar",
|
|
||||||
"off": "Apagat"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Configurar",
|
|
||||||
"configured": "Configurat"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Tancada",
|
|
||||||
"closing": "Tancant",
|
|
||||||
"open": "Oberta",
|
|
||||||
"opening": "Obrint",
|
|
||||||
"stopped": "Aturat"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Desactivat",
|
|
||||||
"on": "Activat",
|
|
||||||
"unavailable": "No disponible",
|
|
||||||
"unknown": "Desconegut"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "A casa",
|
|
||||||
"not_home": "Fora"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Apagat",
|
|
||||||
"on": "Enc\u00e8s"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Tancat",
|
|
||||||
"closing": "Tancant",
|
|
||||||
"home": "A casa",
|
|
||||||
"locked": "Bloquejat",
|
|
||||||
"not_home": "Fora",
|
|
||||||
"off": "Desactivat",
|
|
||||||
"ok": "Correcte",
|
|
||||||
"on": "Activat",
|
|
||||||
"open": "Obert",
|
|
||||||
"opening": "Obrint",
|
|
||||||
"problem": "Problema",
|
|
||||||
"stopped": "Aturat",
|
|
||||||
"unlocked": "Desbloquejat"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Desactivat",
|
|
||||||
"on": "Activat"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Apagada",
|
|
||||||
"on": "Encesa"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Bloquejat",
|
|
||||||
"unlocked": "Desbloquejat"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Inactiu",
|
|
||||||
"off": "Apagat",
|
|
||||||
"on": "Enc\u00e8s",
|
|
||||||
"paused": "Pausat",
|
|
||||||
"playing": "Reproduint",
|
|
||||||
"standby": "En espera"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "A casa",
|
|
||||||
"not_home": "Fora"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "Correcte",
|
|
||||||
"problem": "Problema"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Apagat",
|
|
||||||
"on": "Enc\u00e8s"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Escena activa"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Desactivat",
|
|
||||||
"on": "Activat"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Desactivat",
|
|
||||||
"on": "Activat"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Sobre l'horitz\u00f3",
|
|
||||||
"below_horizon": "Sota l'horitz\u00f3"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Apagat",
|
|
||||||
"on": "Enc\u00e8s"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "actiu",
|
|
||||||
"idle": "inactiu",
|
|
||||||
"paused": "en pausa"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Netejant",
|
|
||||||
"docked": "Aparcat",
|
|
||||||
"error": "Error",
|
|
||||||
"idle": "Inactiu",
|
|
||||||
"off": "Apagat",
|
|
||||||
"on": "Enc\u00e8s",
|
|
||||||
"paused": "Pausat",
|
|
||||||
"returning": "Retornant a la base"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Ser\u00e8, nit",
|
|
||||||
"cloudy": "Ennuvolat",
|
|
||||||
"exceptional": "Excepcional",
|
|
||||||
"fog": "Boira",
|
|
||||||
"hail": "Calamarsa",
|
|
||||||
"lightning": "Llamps",
|
|
||||||
"lightning-rainy": "Tempesta",
|
|
||||||
"partlycloudy": "Parcialment ennuvolat",
|
|
||||||
"pouring": "Pluja",
|
|
||||||
"rainy": "Pluj\u00f3s",
|
|
||||||
"snowy": "Neu",
|
|
||||||
"snowy-rainy": "Aiguaneu",
|
|
||||||
"sunny": "Assolellat",
|
|
||||||
"windy": "Vent\u00f3s",
|
|
||||||
"windy-variant": "Vent\u00f3s"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "No disponible",
|
|
||||||
"initializing": "Inicialitzant",
|
|
||||||
"ready": "A punt",
|
|
||||||
"sleeping": "Dormint"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "No disponible ({query_stage})",
|
|
||||||
"initializing": "Inicialitzant ({query_stage})"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Aktivn\u00ed",
|
|
||||||
"armed_away": "Aktivn\u00ed re\u017eim mimo domov",
|
|
||||||
"armed_custom_bypass": "Aktivn\u00ed u\u017eivatelsk\u00fdm obejit\u00edm",
|
|
||||||
"armed_home": "Aktivn\u00ed re\u017eim doma",
|
|
||||||
"armed_night": "Aktivn\u00ed no\u010dn\u00ed re\u017eim",
|
|
||||||
"arming": "Aktivov\u00e1n\u00ed",
|
|
||||||
"disarmed": "Neaktivn\u00ed",
|
|
||||||
"disarming": "Deaktivov\u00e1n\u00ed",
|
|
||||||
"pending": "Nadch\u00e1zej\u00edc\u00ed",
|
|
||||||
"triggered": "Spu\u0161t\u011bno"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Neaktivn\u00ed",
|
|
||||||
"on": "Aktivn\u00ed"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Norm\u00e1ln\u00ed",
|
|
||||||
"on": "N\u00edzk\u00fd stav"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Norm\u00e1ln\u00ed",
|
|
||||||
"on": "Chladn\u00e9"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Odpojeno",
|
|
||||||
"on": "P\u0159ipojeno"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Neaktivn\u00ed",
|
|
||||||
"on": "Aktivn\u00ed"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Zav\u0159eno",
|
|
||||||
"on": "Otev\u0159eno"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Zav\u0159eno",
|
|
||||||
"on": "Otev\u0159eno"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "\u017d\u00e1dn\u00fd plyn",
|
|
||||||
"on": "Zji\u0161t\u011bn plyn"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Norm\u00e1ln\u00ed",
|
|
||||||
"on": "Hork\u00e9"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Zam\u010deno",
|
|
||||||
"on": "Odem\u010deno"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Sucho",
|
|
||||||
"on": "Vlhko"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Bez pohybu",
|
|
||||||
"on": "Zaznamen\u00e1n pohyb"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Volno",
|
|
||||||
"on": "Obsazeno"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Zav\u0159eno",
|
|
||||||
"on": "Otev\u0159eno"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Pry\u010d",
|
|
||||||
"on": "Doma"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "V po\u0159\u00e1dku",
|
|
||||||
"on": "Probl\u00e9m"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Zaji\u0161t\u011bno",
|
|
||||||
"on": "Nezaji\u0161t\u011bno"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "\u017d\u00e1dn\u00fd d\u00fdm",
|
|
||||||
"on": "Zji\u0161t\u011bn d\u00fdm"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Ticho",
|
|
||||||
"on": "Zachycen zvuk"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Klid",
|
|
||||||
"on": "Zji\u0161t\u011bny vibrace"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Zav\u0159eno",
|
|
||||||
"on": "Otev\u0159eno"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Neaktivn\u00ed",
|
|
||||||
"on": "Aktivn\u00ed"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Ne\u010dinn\u00fd",
|
|
||||||
"recording": "Z\u00e1znam",
|
|
||||||
"streaming": "Streamov\u00e1n\u00ed"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Automatika",
|
|
||||||
"cool": "Chlazen\u00ed",
|
|
||||||
"dry": "Vysou\u0161en\u00ed",
|
|
||||||
"fan_only": "Pouze ventil\u00e1tor",
|
|
||||||
"heat": "Topen\u00ed",
|
|
||||||
"heat_cool": "Vyt\u00e1p\u011bn\u00ed/Chlazen\u00ed",
|
|
||||||
"off": "Neaktivn\u00ed"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Nakonfigurovat",
|
|
||||||
"configured": "Nakonfigurov\u00e1no"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Zav\u0159eno",
|
|
||||||
"closing": "Zav\u00edr\u00e1n\u00ed",
|
|
||||||
"open": "Otev\u0159eno",
|
|
||||||
"opening": "Otev\u00edr\u00e1n\u00ed",
|
|
||||||
"stopped": "Zastaveno"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Neaktivn\u00ed",
|
|
||||||
"on": "Aktivn\u00ed",
|
|
||||||
"unavailable": "Nen\u00ed k dispozici",
|
|
||||||
"unknown": "Nezji\u0161t\u011bno"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Doma",
|
|
||||||
"not_home": "Pry\u010d"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Neaktivn\u00ed",
|
|
||||||
"on": "Aktivn\u00ed"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Zav\u0159eno",
|
|
||||||
"closing": "Zav\u00edr\u00e1n\u00ed",
|
|
||||||
"home": "Doma",
|
|
||||||
"locked": "Zam\u010deno",
|
|
||||||
"not_home": "Pry\u010d",
|
|
||||||
"off": "Neaktivn\u00ed",
|
|
||||||
"ok": "V po\u0159\u00e1dku",
|
|
||||||
"on": "Aktivn\u00ed",
|
|
||||||
"open": "Otev\u0159eno",
|
|
||||||
"opening": "Otev\u00edr\u00e1n\u00ed",
|
|
||||||
"problem": "Probl\u00e9m",
|
|
||||||
"stopped": "Zastaveno",
|
|
||||||
"unlocked": "Odem\u010deno"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Neaktivn\u00ed",
|
|
||||||
"on": "Aktivn\u00ed"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Nesv\u00edt\u00ed",
|
|
||||||
"on": "Sv\u00edt\u00ed"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Zam\u010deno",
|
|
||||||
"unlocked": "Odem\u010deno"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Ne\u010dinn\u00fd",
|
|
||||||
"off": "Neaktivn\u00ed",
|
|
||||||
"on": "Aktivn\u00ed",
|
|
||||||
"paused": "Pozastaveno",
|
|
||||||
"playing": "P\u0159ehr\u00e1v\u00e1n\u00ed",
|
|
||||||
"standby": "Pohotovostn\u00ed re\u017eim"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Doma",
|
|
||||||
"not_home": "Pry\u010d"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "V po\u0159\u00e1dku",
|
|
||||||
"problem": "Probl\u00e9m"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Neaktivn\u00ed",
|
|
||||||
"on": "Aktivn\u00ed"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Scen\u00e9rie"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Neaktivn\u00ed",
|
|
||||||
"on": "Aktivn\u00ed"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Neaktivn\u00ed",
|
|
||||||
"on": "Aktivn\u00ed"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Nad horizontem",
|
|
||||||
"below_horizon": "Za horizontem"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Neaktivn\u00ed",
|
|
||||||
"on": "Aktivn\u00ed"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "aktivn\u00ed",
|
|
||||||
"idle": "ne\u010dinn\u00e9",
|
|
||||||
"paused": "pozastaveno"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "\u010cist\u00ed",
|
|
||||||
"docked": "V stanici",
|
|
||||||
"error": "Chyba",
|
|
||||||
"idle": "Ne\u010dinn\u00fd",
|
|
||||||
"off": "Off",
|
|
||||||
"on": "On",
|
|
||||||
"paused": "Pozastaveno",
|
|
||||||
"returning": "N\u00e1vrat do stanice"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Jasn\u00e1 noc",
|
|
||||||
"cloudy": "Zata\u017eeno",
|
|
||||||
"exceptional": "Vyj\u00edme\u010dn\u00e9",
|
|
||||||
"fog": "Mlha",
|
|
||||||
"hail": "Krupobit\u00ed",
|
|
||||||
"lightning": "Bou\u0159e",
|
|
||||||
"lightning-rainy": "Bou\u0159e a d\u00e9\u0161\u0165",
|
|
||||||
"partlycloudy": "Polojasno",
|
|
||||||
"pouring": "Lij\u00e1k",
|
|
||||||
"rainy": "D\u00e9\u0161\u0165",
|
|
||||||
"snowy": "Sn\u00edh",
|
|
||||||
"snowy-rainy": "D\u00e9\u0161\u0165 se sn\u011bhem",
|
|
||||||
"sunny": "Slune\u010dno",
|
|
||||||
"windy": "V\u011btrno",
|
|
||||||
"windy-variant": "V\u011btrno"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Nereaguje",
|
|
||||||
"initializing": "Inicializace",
|
|
||||||
"ready": "P\u0159ipraveno",
|
|
||||||
"sleeping": "\u00dasporn\u00fd re\u017eim"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Nereaguje ({query_stage})",
|
|
||||||
"initializing": "Inicializace ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,243 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Arfogi",
|
|
||||||
"armed_away": "Arfog i ffwrdd",
|
|
||||||
"armed_custom_bypass": "Ffordd osgoi larwm personol",
|
|
||||||
"armed_home": "Arfogi gartref",
|
|
||||||
"armed_night": "Arfog nos",
|
|
||||||
"arming": "Arfogi",
|
|
||||||
"disarmed": "Diarfogi",
|
|
||||||
"disarming": "Ddiarfogi",
|
|
||||||
"pending": "Yn yr arfaeth",
|
|
||||||
"triggered": "Sbarduno"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "I ffwrdd",
|
|
||||||
"on": "Ar"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Arferol",
|
|
||||||
"on": "Isel"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Arferol",
|
|
||||||
"on": "Oer"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Wedi datgysylltu",
|
|
||||||
"on": "Cysylltiedig"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "i ffwrdd",
|
|
||||||
"on": "Ar"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Cau",
|
|
||||||
"on": "Agor"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Cau",
|
|
||||||
"on": "Agor"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Clir",
|
|
||||||
"on": "Wedi'i ganfod"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Arferol",
|
|
||||||
"on": "Poeth"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Cloi",
|
|
||||||
"on": "Dad-gloi"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Sych",
|
|
||||||
"on": "Gwlyb"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Clir",
|
|
||||||
"on": "Wedi'i ganfod"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Clir",
|
|
||||||
"on": "Wedi'i ganfod"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Cau",
|
|
||||||
"on": "Agor"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Allan",
|
|
||||||
"on": "Gartref"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "iawn",
|
|
||||||
"on": "Problem"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Diogel",
|
|
||||||
"on": "Anniogel"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Clir",
|
|
||||||
"on": "Wedi'i ganfod"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Clir",
|
|
||||||
"on": "Wedi'i ganfod"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Clir",
|
|
||||||
"on": "Wedi'i ganfod"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Cau",
|
|
||||||
"on": "Agored"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "i ffwrdd",
|
|
||||||
"on": "Ar"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Segur",
|
|
||||||
"recording": "Recordio",
|
|
||||||
"streaming": "Ffrydio"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Awto",
|
|
||||||
"cool": "Sefydlog",
|
|
||||||
"dry": "Sych",
|
|
||||||
"fan_only": "Fan yn unig",
|
|
||||||
"heat": "Gwres",
|
|
||||||
"off": "i ffwrdd"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Ffurfweddu",
|
|
||||||
"configured": "Wedi'i ffurfweddu"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Ar gau",
|
|
||||||
"closing": "Cau",
|
|
||||||
"open": "Agor",
|
|
||||||
"opening": "Yn agor",
|
|
||||||
"stopped": "Stopio"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "I ffwrdd",
|
|
||||||
"on": "Ar",
|
|
||||||
"unavailable": "Ddim ar gael",
|
|
||||||
"unknown": "Anhysbys"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Gartref",
|
|
||||||
"not_home": "Diim gartref"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "i ffwrdd",
|
|
||||||
"on": "Ar"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Wedi cau",
|
|
||||||
"closing": "Yn cau",
|
|
||||||
"home": "Gartref",
|
|
||||||
"locked": " Cloi",
|
|
||||||
"not_home": "Dim gartref",
|
|
||||||
"off": "i ffwrdd",
|
|
||||||
"ok": "Iawn",
|
|
||||||
"on": "Ar",
|
|
||||||
"open": "Agored",
|
|
||||||
"opening": "Agor",
|
|
||||||
"problem": "Problem",
|
|
||||||
"stopped": "Stopio",
|
|
||||||
"unlocked": "Dadgloi"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "i ffwrdd",
|
|
||||||
"on": "Ar"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "i ffwrdd",
|
|
||||||
"on": "Ar"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Wedi cloi",
|
|
||||||
"unlocked": "Datgloi"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Segur",
|
|
||||||
"off": "i ffwrdd",
|
|
||||||
"on": "Ar",
|
|
||||||
"paused": "Wedi rhewi",
|
|
||||||
"playing": "Chwarae",
|
|
||||||
"standby": "Gorffwys"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Gartref",
|
|
||||||
"not_home": "I ffwrdd"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "Iawn",
|
|
||||||
"problem": "Problem"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "i ffwrdd",
|
|
||||||
"on": "Ar"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Sefyllfa"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "i ffwrdd",
|
|
||||||
"on": "Ar"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "i ffwrdd",
|
|
||||||
"on": "Ar"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Dros y gorwel",
|
|
||||||
"below_horizon": "Islaw'r gorwel"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "i ffwrdd",
|
|
||||||
"on": "Ar"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "gweithredol",
|
|
||||||
"idle": "segur",
|
|
||||||
"paused": "wedi rhewi"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Clir, nos",
|
|
||||||
"cloudy": "Cymylog",
|
|
||||||
"fog": "Niwl",
|
|
||||||
"hail": "Cenllysg",
|
|
||||||
"lightning": "Mellt",
|
|
||||||
"lightning-rainy": "Mellt, glawog",
|
|
||||||
"partlycloudy": "Cymharol gymylog",
|
|
||||||
"pouring": "Arllwys",
|
|
||||||
"rainy": "Glawog",
|
|
||||||
"snowy": "Eira",
|
|
||||||
"snowy-rainy": "Eira, gwlyb",
|
|
||||||
"sunny": "Heulog",
|
|
||||||
"windy": "Gwyntog",
|
|
||||||
"windy-variant": "Gwyntog"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Marw",
|
|
||||||
"initializing": "Ymgychwyn",
|
|
||||||
"ready": "Barod",
|
|
||||||
"sleeping": "Cysgu"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Marw ({query_stage})",
|
|
||||||
"initializing": "Ymgychwyn ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Tilkoblet",
|
|
||||||
"armed_away": "Tilkoblet ude",
|
|
||||||
"armed_custom_bypass": "Tilkoblet brugerdefineret bypass",
|
|
||||||
"armed_home": "Tilkoblet hjemme",
|
|
||||||
"armed_night": "Tilkoblet nat",
|
|
||||||
"arming": "Tilkobler",
|
|
||||||
"disarmed": "Frakoblet",
|
|
||||||
"disarming": "Frakobler",
|
|
||||||
"pending": "Afventer",
|
|
||||||
"triggered": "Udl\u00f8st"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Fra",
|
|
||||||
"on": "Til"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Lav"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Kold"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Afbrudt",
|
|
||||||
"on": "Forbundet"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Fra",
|
|
||||||
"on": "Til"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Lukket",
|
|
||||||
"on": "\u00c5ben"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Lukket",
|
|
||||||
"on": "\u00c5ben"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Ikke registreret",
|
|
||||||
"on": "Registreret"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Varm"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "L\u00e5st",
|
|
||||||
"on": "Ul\u00e5st"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "T\u00f8r",
|
|
||||||
"on": "Fugtig"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Ikke registreret",
|
|
||||||
"on": "Registreret"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Ikke registreret",
|
|
||||||
"on": "Registreret"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Lukket",
|
|
||||||
"on": "\u00c5ben"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Ude",
|
|
||||||
"on": "Hjemme"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Problem"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Sikret",
|
|
||||||
"on": "Usikret"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Ikke registreret",
|
|
||||||
"on": "Registreret"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Ikke registreret",
|
|
||||||
"on": "Registreret"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Ikke registreret",
|
|
||||||
"on": "Registreret"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Lukket",
|
|
||||||
"on": "\u00c5ben"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Fra",
|
|
||||||
"on": "Til"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Inaktiv",
|
|
||||||
"recording": "Optager",
|
|
||||||
"streaming": "Streamer"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Auto",
|
|
||||||
"cool": "K\u00f8l",
|
|
||||||
"dry": "T\u00f8r",
|
|
||||||
"fan_only": "Kun bl\u00e6ser",
|
|
||||||
"heat": "Varme",
|
|
||||||
"heat_cool": "Opvarm/k\u00f8l",
|
|
||||||
"off": "Fra"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Konfigurer",
|
|
||||||
"configured": "Konfigureret"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Lukket",
|
|
||||||
"closing": "Lukker",
|
|
||||||
"open": "\u00c5ben",
|
|
||||||
"opening": "\u00c5bner",
|
|
||||||
"stopped": "Stoppet"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Fra",
|
|
||||||
"on": "Til",
|
|
||||||
"unavailable": "Utilg\u00e6ngelig",
|
|
||||||
"unknown": "Ukendt"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Hjemme",
|
|
||||||
"not_home": "Ude"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Fra",
|
|
||||||
"on": "Til"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Lukket",
|
|
||||||
"closing": "Lukker",
|
|
||||||
"home": "Hjemme",
|
|
||||||
"locked": "L\u00e5st",
|
|
||||||
"not_home": "Ude",
|
|
||||||
"off": "Fra",
|
|
||||||
"ok": "OK",
|
|
||||||
"on": "Til",
|
|
||||||
"open": "\u00c5ben",
|
|
||||||
"opening": "\u00c5bner",
|
|
||||||
"problem": "Problem",
|
|
||||||
"stopped": "Stoppet",
|
|
||||||
"unlocked": "Ul\u00e5st"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Fra",
|
|
||||||
"on": "Til"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Slukket",
|
|
||||||
"on": "T\u00e6ndt"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "L\u00e5st",
|
|
||||||
"unlocked": "Ul\u00e5st"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Inaktiv",
|
|
||||||
"off": "Slukket",
|
|
||||||
"on": "T\u00e6ndt",
|
|
||||||
"paused": "Sat p\u00e5 pause",
|
|
||||||
"playing": "Afspiller",
|
|
||||||
"standby": "Standby"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Hjemme",
|
|
||||||
"not_home": "Ude"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "OK",
|
|
||||||
"problem": "Problem"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Slukket",
|
|
||||||
"on": "T\u00e6ndt"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Skifter scene"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Fra",
|
|
||||||
"on": "Til"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Fra",
|
|
||||||
"on": "Til"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Over horisonten",
|
|
||||||
"below_horizon": "Under horisonten"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Fra",
|
|
||||||
"on": "Til"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "aktiv",
|
|
||||||
"idle": "inaktiv",
|
|
||||||
"paused": "pause"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "G\u00f8r rent",
|
|
||||||
"docked": "I dock",
|
|
||||||
"error": "Fejl",
|
|
||||||
"idle": "Inaktiv",
|
|
||||||
"off": "Off",
|
|
||||||
"on": "On",
|
|
||||||
"paused": "Sat p\u00e5 pause",
|
|
||||||
"returning": "Vender tilbage til dock"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Klart, nat",
|
|
||||||
"cloudy": "Overskyet",
|
|
||||||
"exceptional": "Enest\u00e5ende",
|
|
||||||
"fog": "T\u00e5ge",
|
|
||||||
"hail": "Hagl",
|
|
||||||
"lightning": "Lyn",
|
|
||||||
"lightning-rainy": "Lyn, regnvejr",
|
|
||||||
"partlycloudy": "Delvist overskyet",
|
|
||||||
"pouring": "Regnvejr",
|
|
||||||
"rainy": "Regnfuldt",
|
|
||||||
"snowy": "Sne",
|
|
||||||
"snowy-rainy": "Sne, regn",
|
|
||||||
"sunny": "Solrig",
|
|
||||||
"windy": "Bl\u00e6sende",
|
|
||||||
"windy-variant": "Bl\u00e6sende"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "D\u00f8d",
|
|
||||||
"initializing": "Initialiserer",
|
|
||||||
"ready": "Klar",
|
|
||||||
"sleeping": "Sover"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "D\u00f8d ({query_stage})",
|
|
||||||
"initializing": "Initialiserer ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Aktiv",
|
|
||||||
"armed_away": "Aktiv, abwesend",
|
|
||||||
"armed_custom_bypass": "Aktiv, benutzerdefiniert",
|
|
||||||
"armed_home": "Aktiv, zu Hause",
|
|
||||||
"armed_night": "Aktiv, Nacht",
|
|
||||||
"arming": "Aktiviere",
|
|
||||||
"disarmed": "Inaktiv",
|
|
||||||
"disarming": "Deaktiviere",
|
|
||||||
"pending": "Ausstehend",
|
|
||||||
"triggered": "Ausgel\u00f6st"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "An"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Schwach"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Kalt"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Getrennt",
|
|
||||||
"on": "Verbunden"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "An"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Geschlossen",
|
|
||||||
"on": "Offen"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Geschlossen",
|
|
||||||
"on": "Offen"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Erkannt"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Hei\u00df"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Verriegelt",
|
|
||||||
"on": "Entriegelt"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Trocken",
|
|
||||||
"on": "Nass"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Ruhig",
|
|
||||||
"on": "Bewegung erkannt"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Frei",
|
|
||||||
"on": "Belegt"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Geschlossen",
|
|
||||||
"on": "Offen"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Abwesend",
|
|
||||||
"on": "Zu Hause"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Problem"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Sicher",
|
|
||||||
"on": "Unsicher"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Rauch erkannt"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Stille",
|
|
||||||
"on": "Ger\u00e4usch erkannt"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Vibration"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Geschlossen",
|
|
||||||
"on": "Offen"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "An"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Unt\u00e4tig",
|
|
||||||
"recording": "Aufnehmen",
|
|
||||||
"streaming": "\u00dcbertr\u00e4gt"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Automatisch",
|
|
||||||
"cool": "K\u00fchlen",
|
|
||||||
"dry": "Entfeuchten",
|
|
||||||
"fan_only": "Nur Ventilator",
|
|
||||||
"heat": "Heizen",
|
|
||||||
"heat_cool": "Heizen/K\u00fchlen",
|
|
||||||
"off": "Aus"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Konfigurieren",
|
|
||||||
"configured": "Konfiguriert"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Geschlossen",
|
|
||||||
"closing": "Schlie\u00dft",
|
|
||||||
"open": "Offen",
|
|
||||||
"opening": "\u00d6ffnet",
|
|
||||||
"stopped": "Angehalten"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "An",
|
|
||||||
"unavailable": "Nicht verf\u00fcgbar",
|
|
||||||
"unknown": "Unbekannt"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Zu Hause",
|
|
||||||
"not_home": "Abwesend"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "An"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Geschlossen",
|
|
||||||
"closing": "Schlie\u00dft",
|
|
||||||
"home": "Zu Hause",
|
|
||||||
"locked": "Verriegelt",
|
|
||||||
"not_home": "Abwesend",
|
|
||||||
"off": "Aus",
|
|
||||||
"ok": "OK",
|
|
||||||
"on": "An",
|
|
||||||
"open": "Offen",
|
|
||||||
"opening": "\u00d6ffnet",
|
|
||||||
"problem": "Problem",
|
|
||||||
"stopped": "Angehalten",
|
|
||||||
"unlocked": "Entriegelt"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "An"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "An"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Verriegelt",
|
|
||||||
"unlocked": "Entriegelt"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Unt\u00e4tig",
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "An",
|
|
||||||
"paused": "Pausiert",
|
|
||||||
"playing": "Spielt",
|
|
||||||
"standby": "Standby"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Zu Hause",
|
|
||||||
"not_home": "Abwesend"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "OK",
|
|
||||||
"problem": "Problem"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "An"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Szene"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "An"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "An"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "\u00dcber dem Horizont",
|
|
||||||
"below_horizon": "Unter dem Horizont"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "An"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "aktiv",
|
|
||||||
"idle": "Leerlauf",
|
|
||||||
"paused": "pausiert"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Reinigen",
|
|
||||||
"docked": "Angedockt",
|
|
||||||
"error": "Fehler",
|
|
||||||
"idle": "Standby",
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "An",
|
|
||||||
"paused": "Pausiert",
|
|
||||||
"returning": "R\u00fcckkehr zur Dockingstation"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Klare Nacht",
|
|
||||||
"cloudy": "Bew\u00f6lkt",
|
|
||||||
"exceptional": "Au\u00dfergew\u00f6hnlich",
|
|
||||||
"fog": "Nebel",
|
|
||||||
"hail": "Hagel",
|
|
||||||
"lightning": "Gewitter",
|
|
||||||
"lightning-rainy": "Gewitter, regnerisch",
|
|
||||||
"partlycloudy": "Teilweise bew\u00f6lkt",
|
|
||||||
"pouring": "Str\u00f6mend",
|
|
||||||
"rainy": "Regnerisch",
|
|
||||||
"snowy": "Verschneit",
|
|
||||||
"snowy-rainy": "Verschneit, regnerisch",
|
|
||||||
"sunny": "Sonnig",
|
|
||||||
"windy": "Windig",
|
|
||||||
"windy-variant": "Windig"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Nicht erreichbar",
|
|
||||||
"initializing": "Initialisierend",
|
|
||||||
"ready": "Bereit",
|
|
||||||
"sleeping": "Schlafend"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Nicht erreichbar ({query_stage})",
|
|
||||||
"initializing": "Initialisiere ({query_stage})"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "\u039f\u03c0\u03bb\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2",
|
|
||||||
"armed_away": "\u039f\u03c0\u03bb\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2 \u03bc\u03b1\u03ba\u03c1\u03b9\u03ac",
|
|
||||||
"armed_custom_bypass": "\u03a0\u03c1\u03bf\u03c3\u03b1\u03c1\u03bc\u03bf\u03c3\u03bc\u03ad\u03bd\u03b7 \u03c0\u03b1\u03c1\u03ac\u03ba\u03b1\u03bc\u03c8\u03b7 \u03b5\u03bd\u03b5\u03c1\u03b3\u03ae",
|
|
||||||
"armed_home": "\u03a3\u03c0\u03af\u03c4\u03b9 \u039f\u03c0\u03bb\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf",
|
|
||||||
"armed_night": "\u039f\u03c0\u03bb\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf \u03b2\u03c1\u03ac\u03b4\u03c5",
|
|
||||||
"arming": "\u038c\u03c0\u03bb\u03b9\u03c3\u03b7",
|
|
||||||
"disarmed": "\u0391\u03c6\u03bf\u03c0\u03bb\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c2",
|
|
||||||
"disarming": "\u0391\u03c6\u03cc\u03c0\u03bb\u03b9\u03c3\u03b7",
|
|
||||||
"pending": "\u0395\u03ba\u03ba\u03c1\u03b5\u03bc\u03ae\u03c2",
|
|
||||||
"triggered": "\u03a0\u03b1\u03c1\u03b1\u03b2\u03af\u03b1\u03c3\u03b7"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc",
|
|
||||||
"on": "\u0395\u03bd\u03b5\u03c1\u03b3\u03cc\u03c2 "
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "\u039a\u03b1\u03bd\u03bf\u03bd\u03b9\u03ba\u03cc\u03c2",
|
|
||||||
"on": "\u03a7\u03b1\u03bc\u03b7\u03bb\u03cc\u03c2"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "\u03a6\u03c5\u03c3\u03b9\u03bf\u03bb\u03bf\u03b3\u03b9\u03ba\u03cc",
|
|
||||||
"on": "\u039a\u03c1\u03cd\u03bf"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "\u0391\u03c0\u03bf\u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7",
|
|
||||||
"on": "\u03a3\u03c5\u03bd\u03b4\u03b5\u03b4\u03b5\u03bc\u03ad\u03bd\u03bf\u03c2"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u0391\u03bd\u03b5\u03bd\u03b5\u03c1\u03b3\u03cc\u03c2",
|
|
||||||
"on": "\u0395\u03bd\u03b5\u03c1\u03b3\u03cc\u03c2"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03ae",
|
|
||||||
"on": "\u0391\u03bd\u03bf\u03b9\u03c7\u03c4\u03ae"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc",
|
|
||||||
"on": "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "\u0394\u03b5\u03bd \u0395\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03c4\u03b7\u03ba\u03b5",
|
|
||||||
"on": "\u0395\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03c4\u03b7\u03ba\u03b5"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "\u03a6\u03c5\u03c3\u03b9\u03bf\u03bb\u03bf\u03b3\u03b9\u03ba\u03cc",
|
|
||||||
"on": "\u039a\u03b1\u03c5\u03c4\u03cc"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "\u039a\u03bb\u03b5\u03b9\u03b4\u03c9\u03bc\u03ad\u03bd\u03bf",
|
|
||||||
"on": "\u039e\u03b5\u03ba\u03bb\u03b5\u03af\u03b4\u03c9\u03c4\u03bf"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "\u039e\u03b7\u03c1\u03cc",
|
|
||||||
"on": "\u03a5\u03b3\u03c1\u03cc"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "\u0394\u03b5\u03bd \u0395\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03c4\u03b7\u03ba\u03b5",
|
|
||||||
"on": "\u0395\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03c4\u03b7\u03ba\u03b5"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "\u0394\u03b5\u03bd \u0395\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03c4\u03b7\u03ba\u03b5",
|
|
||||||
"on": "\u0395\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03c4\u03b7\u03ba\u03b5"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc",
|
|
||||||
"on": "\u0391\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "\u0395\u03ba\u03c4\u03cc\u03c2",
|
|
||||||
"on": "\u03a3\u03c0\u03af\u03c4\u03b9"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "\u0395\u03bd\u03c4\u03ac\u03be\u03b5\u03b9",
|
|
||||||
"on": "\u03a0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "\u0391\u03c3\u03c6\u03b1\u03bb\u03ae\u03c2",
|
|
||||||
"on": "\u0391\u03bd\u03b1\u03c3\u03c6\u03b1\u03bb\u03ae\u03c2"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "\u0394\u03b5\u03bd \u0395\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03c4\u03b7\u03ba\u03b5",
|
|
||||||
"on": "\u0395\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03c4\u03b7\u03ba\u03b5"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "\u0394\u03b5\u03bd \u0395\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03c4\u03b7\u03ba\u03b5",
|
|
||||||
"on": "\u0395\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03c4\u03b7\u03ba\u03b5"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "\u0394\u03b5\u03bd \u0395\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03c4\u03b7\u03ba\u03b5",
|
|
||||||
"on": "\u0395\u03bd\u03c4\u03bf\u03c0\u03af\u03c3\u03c4\u03b7\u03ba\u03b5"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc",
|
|
||||||
"on": "\u0391\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "\u0391\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03bf",
|
|
||||||
"on": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03bf"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "\u0391\u03b4\u03c1\u03b1\u03bd\u03ad\u03c2",
|
|
||||||
"recording": "\u039a\u03b1\u03c4\u03b1\u03b3\u03c1\u03ac\u03c6\u03b5\u03b9",
|
|
||||||
"streaming": "\u039c\u03b5\u03c4\u03ac\u03b4\u03bf\u03c3\u03b7 \u03a1\u03bf\u03ae\u03c2"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "\u0391\u03c5\u03c4\u03cc\u03bc\u03b1\u03c4\u03bf",
|
|
||||||
"cool": "\u0394\u03c1\u03bf\u03c3\u03b5\u03c1\u03cc",
|
|
||||||
"dry": "\u039e\u03b7\u03c1\u03cc",
|
|
||||||
"fan_only": "\u0391\u03bd\u03b5\u03bc\u03b9\u03c3\u03c4\u03ae\u03c1\u03b1\u03c2 \u03bc\u03cc\u03bd\u03bf",
|
|
||||||
"heat": "\u0398\u03b5\u03c1\u03bc\u03cc",
|
|
||||||
"heat_cool": "\u0398\u03ad\u03c1\u03bc\u03b1\u03bd\u03c3\u03b7 / \u03a8\u03cd\u03be\u03b7",
|
|
||||||
"off": "\u0391\u03bd\u03b5\u03bd\u03b5\u03c1\u03b3\u03cc"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "\u0394\u03b9\u03b1\u03bc\u03bf\u03c1\u03c6\u03ce\u03c3\u03c4\u03b5",
|
|
||||||
"configured": "\u0394\u03b9\u03b1\u03bc\u03bf\u03c1\u03c6\u03ce\u03b8\u03b7\u03ba\u03b5"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc",
|
|
||||||
"closing": "\u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf",
|
|
||||||
"open": "\u0391\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc",
|
|
||||||
"opening": "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1",
|
|
||||||
"stopped": "\u03a3\u03c4\u03b1\u03bc\u03ac\u03c4\u03b7\u03c3\u03b5"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc",
|
|
||||||
"on": "\u0391\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc",
|
|
||||||
"unavailable": "\u039c\u03b7 \u0394\u03b9\u03b1\u03b8\u03ad\u03c3\u03b9\u03bc\u03bf",
|
|
||||||
"unknown": "\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03b7"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "\u03a3\u03c0\u03af\u03c4\u03b9",
|
|
||||||
"not_home": "\u0395\u03ba\u03c4\u03cc\u03c2 \u03a3\u03c0\u03b9\u03c4\u03b9\u03bf\u03cd"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc",
|
|
||||||
"on": "\u0391\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc",
|
|
||||||
"closing": "\u039a\u03bb\u03b5\u03af\u03bd\u03b5\u03b9",
|
|
||||||
"home": "\u03a3\u03c0\u03af\u03c4\u03b9",
|
|
||||||
"locked": "\u039a\u03bb\u03b5\u03b9\u03b4\u03c9\u03bc\u03ad\u03bd\u03bf",
|
|
||||||
"not_home": "\u0395\u03ba\u03c4\u03cc\u03c2 \u03a3\u03c0\u03b9\u03c4\u03b9\u03bf\u03cd",
|
|
||||||
"off": "\u0391\u03bd\u03b5\u03bd\u03b5\u03c1\u03b3\u03cc",
|
|
||||||
"ok": "\u0395\u03bd\u03c4\u03ac\u03be\u03b5\u03b9",
|
|
||||||
"on": "\u0395\u03bd\u03b5\u03c1\u03b3\u03cc",
|
|
||||||
"open": "\u0391\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc",
|
|
||||||
"opening": "\u0391\u03bd\u03bf\u03af\u03b3\u03b5\u03b9",
|
|
||||||
"problem": "\u03a0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1",
|
|
||||||
"stopped": "\u03a3\u03c4\u03b1\u03bc\u03b1\u03c4\u03b7\u03bc\u03ad\u03bd\u03bf",
|
|
||||||
"unlocked": "\u039e\u03b5\u03ba\u03bb\u03b5\u03af\u03b4\u03c9\u03c4\u03bf"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc",
|
|
||||||
"on": "\u0391\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc",
|
|
||||||
"on": "\u0391\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "\u039a\u03bb\u03b5\u03b9\u03b4\u03c9\u03bc\u03ad\u03bd\u03b7",
|
|
||||||
"unlocked": "\u039e\u03b5\u03ba\u03bb\u03b5\u03af\u03b4\u03c9\u03c4\u03b7"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "\u03a3\u03b5 \u03b1\u03b4\u03c1\u03ac\u03bd\u03b5\u03b9\u03b1",
|
|
||||||
"off": "\u0391\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7",
|
|
||||||
"on": "\u0395\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7",
|
|
||||||
"paused": "\u03a3\u03b5 \u03a0\u03b1\u03cd\u03c3\u03b7",
|
|
||||||
"playing": "\u039a\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u0391\u03bd\u03b1\u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03ae\u03c2",
|
|
||||||
"standby": "\u039a\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03b1\u03bd\u03b1\u03bc\u03bf\u03bd\u03ae\u03c2"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "\u03a3\u03c0\u03af\u03c4\u03b9",
|
|
||||||
"not_home": "\u0395\u03ba\u03c4\u03cc\u03c2"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "\u0395\u03bd\u03c4\u03ac\u03be\u03b5\u03b9",
|
|
||||||
"problem": "\u03a0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc",
|
|
||||||
"on": "\u0391\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "\u03a3\u03ba\u03af\u03c4\u03c3\u03bf"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "\u0391\u03bd\u03b5\u03bd\u03b5\u03c1\u03b3\u03cc",
|
|
||||||
"on": "\u0395\u03bd\u03b5\u03c1\u03b3\u03cc"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc",
|
|
||||||
"on": "\u0391\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "\u03a0\u03ac\u03bd\u03c9 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u03bf\u03c1\u03af\u03b6\u03bf\u03bd\u03c4\u03b1",
|
|
||||||
"below_horizon": "\u039a\u03ac\u03c4\u03c9 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u03bf\u03c1\u03af\u03b6\u03bf\u03bd\u03c4\u03b1"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "\u039a\u03bb\u03b5\u03b9\u03c3\u03c4\u03cc",
|
|
||||||
"on": "\u0391\u03bd\u03bf\u03b9\u03c7\u03c4\u03cc"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "\u03b5\u03bd\u03b5\u03c1\u03b3\u03cc",
|
|
||||||
"idle": "\u03a3\u03b5 \u03b1\u03b4\u03c1\u03ac\u03bd\u03b5\u03b9\u03b1",
|
|
||||||
"paused": "\u03c3\u03b5 \u03c0\u03b1\u03cd\u03c3\u03b7"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "\u039a\u03b1\u03b8\u03b1\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2",
|
|
||||||
"docked": "\u039a\u03b1\u03c1\u03c6\u03b9\u03c4\u03c3\u03c9\u03bc\u03ad\u03bd\u03bf",
|
|
||||||
"error": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1",
|
|
||||||
"idle": "\u03a3\u03b5 \u03b1\u03b4\u03c1\u03ac\u03bd\u03b5\u03b9\u03b1",
|
|
||||||
"off": "\u039c\u03b7 \u0395\u03bd\u03b5\u03c1\u03b3\u03cc",
|
|
||||||
"on": "\u0395\u03bd\u03b5\u03c1\u03b3\u03cc",
|
|
||||||
"paused": "\u03a0\u03b1\u03cd\u03c3\u03b7",
|
|
||||||
"returning": "\u0395\u03c0\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae \u03c3\u03c4\u03bf dock"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "\u039e\u03b1\u03c3\u03c4\u03b5\u03c1\u03b9\u03ac, \u03bd\u03cd\u03c7\u03c4\u03b1",
|
|
||||||
"cloudy": "\u039d\u03b5\u03c6\u03b5\u03bb\u03ce\u03b4\u03b7\u03c2",
|
|
||||||
"exceptional": "\u0395\u03be\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03cc",
|
|
||||||
"fog": "\u039f\u03bc\u03af\u03c7\u03bb\u03b7",
|
|
||||||
"hail": "\u03a7\u03b1\u03bb\u03ac\u03b6\u03b9",
|
|
||||||
"lightning": "\u0391\u03c3\u03c4\u03c1\u03b1\u03c0\u03ae",
|
|
||||||
"lightning-rainy": "\u039a\u03b1\u03c4\u03b1\u03b9\u03b3\u03af\u03b4\u03b1, \u03b2\u03c1\u03bf\u03c7\u03b5\u03c1\u03cc",
|
|
||||||
"partlycloudy": "\u039c\u03b5\u03c1\u03b9\u03ba\u03ce\u03c2 \u03bd\u03b5\u03c6\u03b5\u03bb\u03ce\u03b4\u03b7\u03c2",
|
|
||||||
"pouring": "\u03a8\u03b9\u03c7\u03b1\u03bb\u03af\u03b6\u03b5\u03b9",
|
|
||||||
"rainy": "\u0392\u03c1\u03bf\u03c7\u03b5\u03c1\u03ae",
|
|
||||||
"snowy": "\u03a7\u03b9\u03bf\u03bd\u03ce\u03b4\u03b7\u03c2",
|
|
||||||
"snowy-rainy": "\u03a7\u03b9\u03bf\u03bd\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf, \u03b2\u03c1\u03bf\u03c7\u03b5\u03c1\u03cc",
|
|
||||||
"sunny": "\u0397\u03bb\u03b9\u03cc\u03bb\u03bf\u03c5\u03c3\u03c4\u03bf",
|
|
||||||
"windy": "\u0398\u03c5\u03b5\u03bb\u03bb\u03ce\u03b4\u03b5\u03b9\u03c2",
|
|
||||||
"windy-variant": "\u0398\u03c5\u03b5\u03bb\u03bb\u03ce\u03b4\u03b5\u03b9\u03c2"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "\u039d\u03b5\u03ba\u03c1\u03cc",
|
|
||||||
"initializing": "\u0391\u03c1\u03c7\u03b9\u03ba\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7",
|
|
||||||
"ready": "\u0388\u03c4\u03bf\u03b9\u03bc\u03bf",
|
|
||||||
"sleeping": "\u039a\u03bf\u03b9\u03bc\u03ac\u03c4\u03b1\u03b9"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "\u039d\u03b5\u03ba\u03c1\u03cc ( {query_stage} )",
|
|
||||||
"initializing": "\u0391\u03c1\u03c7\u03b9\u03ba\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Armado",
|
|
||||||
"armed_away": "Armado Fuera de Casa",
|
|
||||||
"armed_custom_bypass": "Armada zona espec\u00edfica",
|
|
||||||
"armed_home": "Armado en Casa",
|
|
||||||
"armed_night": "Armado Nocturno",
|
|
||||||
"arming": "Armando",
|
|
||||||
"disarmed": "Desarmado",
|
|
||||||
"disarming": "Desarmando",
|
|
||||||
"pending": "Pendiente",
|
|
||||||
"triggered": "Activado"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Desactivado",
|
|
||||||
"on": "Encendido"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Baja"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Fr\u00edo"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Desconectado",
|
|
||||||
"on": "Conectado"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Desactivado",
|
|
||||||
"on": "Encendido"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Cerrada",
|
|
||||||
"on": "Abierta"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Cerrada",
|
|
||||||
"on": "Abierta"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Despejado",
|
|
||||||
"on": "Detectado"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Caliente"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Bloqueado",
|
|
||||||
"on": "Desbloqueado"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Seco",
|
|
||||||
"on": "Humedo"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Despejado",
|
|
||||||
"on": "Detectado"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Despejado",
|
|
||||||
"on": "Detectado"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Cerrado",
|
|
||||||
"on": "Abierto"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Fuera de casa",
|
|
||||||
"on": "En Casa"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Problema"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Seguro",
|
|
||||||
"on": "Inseguro"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Despejado",
|
|
||||||
"on": "Detectado"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Despejado",
|
|
||||||
"on": "Detectado"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Despejado",
|
|
||||||
"on": "Detectado"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Cerrada",
|
|
||||||
"on": "Abierta"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Desactivado",
|
|
||||||
"on": "Activado"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Inactivo",
|
|
||||||
"recording": "Grabando",
|
|
||||||
"streaming": "Streaming"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Automatico",
|
|
||||||
"cool": "Enfriar",
|
|
||||||
"dry": "Seco",
|
|
||||||
"fan_only": "S\u00f3lo ventilador",
|
|
||||||
"heat": "Calentar",
|
|
||||||
"heat_cool": "Calentar/Enfriar",
|
|
||||||
"off": "Desactivar"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Configurar",
|
|
||||||
"configured": "Configurado"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Cerrado",
|
|
||||||
"closing": "Cerrando",
|
|
||||||
"open": "Abierto",
|
|
||||||
"opening": "Abriendo",
|
|
||||||
"stopped": "Detenido"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Desactivado",
|
|
||||||
"on": "Encendido",
|
|
||||||
"unavailable": "No disponible",
|
|
||||||
"unknown": "Desconocido"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "En Casa",
|
|
||||||
"not_home": "Fuera de Casa"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Desactivado",
|
|
||||||
"on": "Encendido"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Cerrado",
|
|
||||||
"closing": "Cerrando",
|
|
||||||
"home": "En casa",
|
|
||||||
"locked": "Cerrado",
|
|
||||||
"not_home": "Fuera de Casa",
|
|
||||||
"off": "Apagado",
|
|
||||||
"ok": "OK",
|
|
||||||
"on": "Encendido",
|
|
||||||
"open": "Abierto",
|
|
||||||
"opening": "Abriendo",
|
|
||||||
"problem": "Problema",
|
|
||||||
"stopped": "Detenido",
|
|
||||||
"unlocked": "Abierto"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Cerrado",
|
|
||||||
"unlocked": "Abierto"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Inactivo",
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido",
|
|
||||||
"paused": "Pausado",
|
|
||||||
"playing": "Reproduciendo",
|
|
||||||
"standby": "Modo de espera"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "En casa",
|
|
||||||
"not_home": "Fuera de casa"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "OK",
|
|
||||||
"problem": "Problema"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Reproduciendo Escena"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "",
|
|
||||||
"on": ""
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Sobre el horizonte",
|
|
||||||
"below_horizon": "Bajo el horizonte"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "",
|
|
||||||
"on": ""
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "activo",
|
|
||||||
"idle": "inactivo",
|
|
||||||
"paused": "pausado"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Limpiando",
|
|
||||||
"docked": "Acoplado",
|
|
||||||
"error": "Error",
|
|
||||||
"idle": "Inactivo",
|
|
||||||
"off": "Encendida",
|
|
||||||
"on": "Apagada",
|
|
||||||
"paused": "Pausado",
|
|
||||||
"returning": "Regresar al dock"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Despejado, de noche",
|
|
||||||
"cloudy": "Nublado",
|
|
||||||
"exceptional": "Excepcional",
|
|
||||||
"fog": "Niebla",
|
|
||||||
"hail": "Granizo",
|
|
||||||
"lightning": "Rel\u00e1mpagos",
|
|
||||||
"lightning-rainy": "Rel\u00e1mpagos, lluvioso",
|
|
||||||
"partlycloudy": "Parcialmente nublado",
|
|
||||||
"pouring": "Torrencial",
|
|
||||||
"rainy": "Lluvioso",
|
|
||||||
"snowy": "Nevado",
|
|
||||||
"snowy-rainy": "Nevado, lluvioso",
|
|
||||||
"sunny": "Soleado",
|
|
||||||
"windy": "Ventoso",
|
|
||||||
"windy-variant": "Ventoso"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Desconectado",
|
|
||||||
"initializing": "Iniciando",
|
|
||||||
"ready": "Listo",
|
|
||||||
"sleeping": "Hibernacion"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Desconectado ({query_stage})",
|
|
||||||
"initializing": "Iniciando ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Armado",
|
|
||||||
"armed_away": "Armado fuera de casa",
|
|
||||||
"armed_custom_bypass": "Armada Zona Espec\u00edfica",
|
|
||||||
"armed_home": "Armado en casa",
|
|
||||||
"armed_night": "Armado noche",
|
|
||||||
"arming": "Armando",
|
|
||||||
"disarmed": "Desarmado",
|
|
||||||
"disarming": "Desarmando",
|
|
||||||
"pending": "Pendiente",
|
|
||||||
"triggered": "Disparada"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendida"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Bajo"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Frio"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Desconectado",
|
|
||||||
"on": "Conectado"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Cerrada",
|
|
||||||
"on": "Abierta"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Cerrada",
|
|
||||||
"on": "Abierta"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "No detectado",
|
|
||||||
"on": "Detectado"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Caliente"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Bloqueado",
|
|
||||||
"on": "Desbloqueado"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Seco",
|
|
||||||
"on": "H\u00famedo"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Sin movimiento",
|
|
||||||
"on": "Detectado"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "No detectado",
|
|
||||||
"on": "Detectado"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Cerrado",
|
|
||||||
"on": "Abierto"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Fuera de casa",
|
|
||||||
"on": "En casa"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Problema"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Seguro",
|
|
||||||
"on": "Inseguro"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "No detectado",
|
|
||||||
"on": "Detectado"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "No detectado",
|
|
||||||
"on": "Detectado"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "No detectado",
|
|
||||||
"on": "Detectado"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Cerrada",
|
|
||||||
"on": "Abierta"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Inactivo",
|
|
||||||
"recording": "Grabando",
|
|
||||||
"streaming": "Transmitiendo"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Autom\u00e1tico",
|
|
||||||
"cool": "Fr\u00edo",
|
|
||||||
"dry": "Seco",
|
|
||||||
"fan_only": "S\u00f3lo ventilador",
|
|
||||||
"heat": "Calor",
|
|
||||||
"heat_cool": "Calor/Fr\u00edo",
|
|
||||||
"off": "Apagado"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Configurar",
|
|
||||||
"configured": "Configurado"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Cerrado",
|
|
||||||
"closing": "Cerrando",
|
|
||||||
"open": "Abierto",
|
|
||||||
"opening": "Abriendo",
|
|
||||||
"stopped": "Detenido"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido",
|
|
||||||
"unavailable": "No disponible",
|
|
||||||
"unknown": "Desconocido"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "En casa",
|
|
||||||
"not_home": "Fuera de casa"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Cerrado",
|
|
||||||
"closing": "Cerrando",
|
|
||||||
"home": "En casa",
|
|
||||||
"locked": "Bloqueado",
|
|
||||||
"not_home": "Fuera de casa",
|
|
||||||
"off": "Apagado",
|
|
||||||
"ok": "OK",
|
|
||||||
"on": "Encendido",
|
|
||||||
"open": "Abierto",
|
|
||||||
"opening": "Abriendo",
|
|
||||||
"problem": "Problema",
|
|
||||||
"stopped": "Detenido",
|
|
||||||
"unlocked": "Desbloqueado"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Apagada",
|
|
||||||
"on": "Encendida"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Bloqueado",
|
|
||||||
"unlocked": "Desbloqueado"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Inactivo",
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido",
|
|
||||||
"paused": "En pausa",
|
|
||||||
"playing": "Reproduciendo",
|
|
||||||
"standby": "Apagado"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Casa",
|
|
||||||
"not_home": "Fuera de casa"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "OK",
|
|
||||||
"problem": "Problema"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "En escena"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Sobre el horizonte",
|
|
||||||
"below_horizon": "Bajo el horizonte"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "activo",
|
|
||||||
"idle": "inactivo",
|
|
||||||
"paused": "pausado"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Limpiando",
|
|
||||||
"docked": "En base",
|
|
||||||
"error": "Error",
|
|
||||||
"idle": "Inactivo",
|
|
||||||
"off": "Apagado",
|
|
||||||
"on": "Encendido",
|
|
||||||
"paused": "En pausa",
|
|
||||||
"returning": "Volviendo a la base"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Despejado, de noche",
|
|
||||||
"cloudy": "Nublado",
|
|
||||||
"exceptional": "Excepcional",
|
|
||||||
"fog": "Niebla",
|
|
||||||
"hail": "Granizo",
|
|
||||||
"lightning": "Rel\u00e1mpagos",
|
|
||||||
"lightning-rainy": "Rel\u00e1mpagos, lluvioso",
|
|
||||||
"partlycloudy": "Parcialmente nublado",
|
|
||||||
"pouring": "Torrencial",
|
|
||||||
"rainy": "Lluvioso",
|
|
||||||
"snowy": "Nevado",
|
|
||||||
"snowy-rainy": "Nevado, lluvioso",
|
|
||||||
"sunny": "Soleado",
|
|
||||||
"windy": "Ventoso",
|
|
||||||
"windy-variant": "Ventoso"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "No responde",
|
|
||||||
"initializing": "Inicializando",
|
|
||||||
"ready": "Listo",
|
|
||||||
"sleeping": "Ahorro de energ\u00eda"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "No responde ({query_stage})",
|
|
||||||
"initializing": "Inicializando ({query_stage})"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Valves",
|
|
||||||
"armed_away": "Valves eemal",
|
|
||||||
"armed_custom_bypass": "Valves, eranditega",
|
|
||||||
"armed_home": "Valves kodus",
|
|
||||||
"armed_night": "Valves \u00f6ine",
|
|
||||||
"arming": "Valvestab",
|
|
||||||
"disarmed": "Maas",
|
|
||||||
"disarming": "Maas...",
|
|
||||||
"pending": "Ootel",
|
|
||||||
"triggered": "H\u00e4ires"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "V\u00e4ljas",
|
|
||||||
"on": "Sees"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Tavaline",
|
|
||||||
"on": "Madal"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Normaalne",
|
|
||||||
"on": "Jahe"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Lahti \u00fchendatud",
|
|
||||||
"on": "\u00dchendatud"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "V\u00e4ljas",
|
|
||||||
"on": "Sees"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Suletud",
|
|
||||||
"on": "Avatud"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Suletud",
|
|
||||||
"on": "Avatud"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Puudub",
|
|
||||||
"on": "Tuvastatud"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Normaalne",
|
|
||||||
"on": "Palav"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Lukus",
|
|
||||||
"on": "Lukustamata"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Kuiv",
|
|
||||||
"on": "M\u00e4rg"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Puudub",
|
|
||||||
"on": "Tuvastatud"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Puudub",
|
|
||||||
"on": "Tuvastatud"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Suletud",
|
|
||||||
"on": "Avatud"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Eemal",
|
|
||||||
"on": "Kodus"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Probleem"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Ohutu",
|
|
||||||
"on": "Ohtlik"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Puudub",
|
|
||||||
"on": "Tuvastatud"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Puudub",
|
|
||||||
"on": "Tuvastatud"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Puudub",
|
|
||||||
"on": "Tuvastatud"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Suletud",
|
|
||||||
"on": "Avatud"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "V\u00e4ljas",
|
|
||||||
"on": "Sees"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Ootel",
|
|
||||||
"recording": "Salvestab",
|
|
||||||
"streaming": "Voogedastab"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Automaatne",
|
|
||||||
"cool": "Jahuta",
|
|
||||||
"dry": "Kuiv",
|
|
||||||
"fan_only": "Ainult ventilaator",
|
|
||||||
"heat": "Soojenda",
|
|
||||||
"heat_cool": "K\u00fcta/jahuta",
|
|
||||||
"off": "V\u00e4ljas"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Seadista",
|
|
||||||
"configured": "Seadistatud"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Suletud",
|
|
||||||
"closing": "Sulgub",
|
|
||||||
"open": "Avatud",
|
|
||||||
"opening": "Avaneb",
|
|
||||||
"stopped": "Peatatud"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "V\u00e4ljas",
|
|
||||||
"on": "Sees",
|
|
||||||
"unavailable": "Kadunud",
|
|
||||||
"unknown": "Teadmata"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Kodus",
|
|
||||||
"not_home": "Eemal"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "V\u00e4ljas",
|
|
||||||
"on": "Sees"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Suletud",
|
|
||||||
"closing": "Sulgub",
|
|
||||||
"home": "Kodus",
|
|
||||||
"locked": "Lukus",
|
|
||||||
"not_home": "Eemal",
|
|
||||||
"off": "V\u00e4ljas",
|
|
||||||
"ok": "OK",
|
|
||||||
"on": "Sees",
|
|
||||||
"open": "Avatud",
|
|
||||||
"opening": "Avaneb",
|
|
||||||
"problem": "Probleem",
|
|
||||||
"stopped": "Peatunud",
|
|
||||||
"unlocked": "Lukustamata"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "V\u00e4ljas",
|
|
||||||
"on": "Sees"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "V\u00e4ljas",
|
|
||||||
"on": "Sees"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Lukus",
|
|
||||||
"unlocked": "Lahti"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Ootel",
|
|
||||||
"off": "V\u00e4ljas",
|
|
||||||
"on": "Sees",
|
|
||||||
"paused": "Peatatud",
|
|
||||||
"playing": "M\u00e4ngib",
|
|
||||||
"standby": "Unere\u017eiimil"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Kodus",
|
|
||||||
"not_home": "Eemal"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "OK",
|
|
||||||
"problem": "Probleem"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "V\u00e4ljas",
|
|
||||||
"on": "Sees"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Stseenis"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "V\u00e4ljas",
|
|
||||||
"on": "Sees"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "V\u00e4ljas",
|
|
||||||
"on": "Sees"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "T\u00f5usnud",
|
|
||||||
"below_horizon": "Loojunud"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "V\u00e4ljas",
|
|
||||||
"on": "Sees"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "aktiivne",
|
|
||||||
"idle": "ootel",
|
|
||||||
"paused": "peatatud"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Puhastamine",
|
|
||||||
"docked": "Dokitud",
|
|
||||||
"error": "Viga",
|
|
||||||
"idle": "Ootel",
|
|
||||||
"off": "V\u00e4ljas",
|
|
||||||
"on": "Sees",
|
|
||||||
"paused": "Peatatud",
|
|
||||||
"returning": "P\u00f6\u00f6rdun tagasi dokki"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Selge \u00f6\u00f6",
|
|
||||||
"cloudy": "Pilves",
|
|
||||||
"exceptional": "Erakordne",
|
|
||||||
"fog": "Udu",
|
|
||||||
"hail": "Rahe",
|
|
||||||
"lightning": "\u00c4ikeseline",
|
|
||||||
"lightning-rainy": "\u00c4ikeseline, vihmane",
|
|
||||||
"partlycloudy": "Osaliselt pilves",
|
|
||||||
"pouring": "Kallab",
|
|
||||||
"rainy": "Vihmane",
|
|
||||||
"snowy": "Lumine",
|
|
||||||
"snowy-rainy": "L\u00f6rtsine",
|
|
||||||
"sunny": "P\u00e4ikeseline",
|
|
||||||
"windy": "Tuuline",
|
|
||||||
"windy-variant": "Tuuline"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Surnud",
|
|
||||||
"initializing": "L\u00e4htestan",
|
|
||||||
"ready": "Valmis",
|
|
||||||
"sleeping": "Ootel"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Surnud ({query_stage})",
|
|
||||||
"initializing": "L\u00e4htestan ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,198 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"pending": "Zain",
|
|
||||||
"triggered": "Abiarazita"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Itzalita",
|
|
||||||
"on": "Piztuta"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normala",
|
|
||||||
"on": "Baxua"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Normala",
|
|
||||||
"on": "Hotza"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Deskonektatuta",
|
|
||||||
"on": "Konektatuta"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Itzalita",
|
|
||||||
"on": "Piztuta"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Itxita",
|
|
||||||
"on": "Ireki"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Itxita",
|
|
||||||
"on": "Ireki"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Normala",
|
|
||||||
"on": "Beroa"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Itxita",
|
|
||||||
"on": "Irekita"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Lehorra",
|
|
||||||
"on": "Buztita"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Itxita",
|
|
||||||
"on": "Ireki"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Kanpoan",
|
|
||||||
"on": "Etxean"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "Ondo",
|
|
||||||
"on": "Arazoa"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Babestuta"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Itxita",
|
|
||||||
"on": "Ireki"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Itzalita",
|
|
||||||
"on": "Piztuta"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"recording": "Grabatzen"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Automatikoa",
|
|
||||||
"cool": "Hotza",
|
|
||||||
"dry": "Lehorra",
|
|
||||||
"fan_only": "Haizagailua bakarrik",
|
|
||||||
"heat": "Beroa",
|
|
||||||
"off": "Itzalita"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Konfiguratu",
|
|
||||||
"configured": "Konfiguratuta"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Itxita",
|
|
||||||
"closing": "Ixten",
|
|
||||||
"open": "Irekita",
|
|
||||||
"opening": "Irekitzen",
|
|
||||||
"stopped": "Geldituta"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Itzalita",
|
|
||||||
"on": "Piztuta",
|
|
||||||
"unavailable": "Ez dago erabilgarri",
|
|
||||||
"unknown": "Ezezaguna"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Etxean",
|
|
||||||
"not_home": "Kanpoan"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Itzalita",
|
|
||||||
"on": "Piztuta"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Itxita",
|
|
||||||
"closing": "Ixten",
|
|
||||||
"home": "Etxean",
|
|
||||||
"not_home": "Kanpoan",
|
|
||||||
"off": "Itzalita",
|
|
||||||
"ok": "Itzalita",
|
|
||||||
"on": "Piztuta",
|
|
||||||
"open": "Ireki",
|
|
||||||
"opening": "Irekitzen",
|
|
||||||
"problem": "Arazoa",
|
|
||||||
"stopped": "Geldirik"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Itzalita",
|
|
||||||
"on": "Piztuta"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Itzalita",
|
|
||||||
"on": "Piztuta"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"off": "Itzalita",
|
|
||||||
"on": "Piztuta"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Etxean",
|
|
||||||
"not_home": "Kanpoan"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "Itzalita",
|
|
||||||
"problem": "Arazoa"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Itzalita",
|
|
||||||
"on": "Piztuta"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Itzalita",
|
|
||||||
"on": "Piztuta"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Itzalita",
|
|
||||||
"on": "Piztuta"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Horizonte gainetik",
|
|
||||||
"below_horizon": "Horizonte azpitik"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Itzalita",
|
|
||||||
"on": "Piztuta"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Garbitzen",
|
|
||||||
"docked": "Basean",
|
|
||||||
"error": "Errorea",
|
|
||||||
"off": "Itzalita",
|
|
||||||
"on": "Piztuta",
|
|
||||||
"returning": "Basera itzultzen"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Garbia, gaua",
|
|
||||||
"cloudy": "Hodeitsua",
|
|
||||||
"fog": "Lainoa",
|
|
||||||
"hail": "Txingorra",
|
|
||||||
"lightning": "Tximistak",
|
|
||||||
"lightning-rainy": "Tximistak, euritsua",
|
|
||||||
"partlycloudy": "Ostarteak",
|
|
||||||
"pouring": "Botatzen",
|
|
||||||
"rainy": "Euritsua",
|
|
||||||
"snowy": "Elurtsua",
|
|
||||||
"snowy-rainy": "Elurtsua, euritsua",
|
|
||||||
"sunny": "Eguzkitsua",
|
|
||||||
"windy": "Haizetsua",
|
|
||||||
"windy-variant": "Haizetsua"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Hilda",
|
|
||||||
"initializing": "Hasieratzen",
|
|
||||||
"ready": "Prest",
|
|
||||||
"sleeping": "Lotan"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Ez du erantzuten ({query_stage})",
|
|
||||||
"initializing": "Hasieratzen ({query_stage})"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,247 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "\u0645\u0635\u0644\u062d \u0634\u062f\u0647",
|
|
||||||
"armed_away": "\u0645\u0633\u0644\u062d \u0634\u062f\u0647 \u0628\u06cc\u0631\u0648\u0646",
|
|
||||||
"armed_custom_bypass": "\u0628\u0627\u06cc\u06af\u0627\u0646\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0645\u0633\u0644\u062d",
|
|
||||||
"armed_home": "\u0645\u0633\u0644\u062d \u0634\u062f\u0647 \u062e\u0627\u0646\u0647",
|
|
||||||
"armed_night": "\u0645\u0633\u0644\u062d \u0634\u062f\u0647 \u0634\u0628",
|
|
||||||
"arming": "\u062f\u0631 \u062d\u0627\u0644 \u0645\u0633\u0644\u062d \u06a9\u0631\u062f\u0646",
|
|
||||||
"disarmed": "\u063a\u06cc\u0631 \u0645\u0633\u0644\u062d",
|
|
||||||
"disarming": "\u062f\u0631 \u062d\u0627\u0644 \u063a\u06cc\u0631 \u0645\u0633\u0644\u062d \u06a9\u0631\u062f\u0646",
|
|
||||||
"pending": "\u062f\u0631 \u0627\u0646\u062a\u0638\u0627\u0631",
|
|
||||||
"triggered": "\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u062e\u062a\u0647 \u0634\u062f\u0647"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "\u062e\u0627\u0645\u0648\u0634",
|
|
||||||
"on": "\u0641\u0639\u0627\u0644"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "\u0639\u0627\u062f\u06cc",
|
|
||||||
"on": "\u06a9\u0645"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "\u0639\u0627\u062f\u06cc",
|
|
||||||
"on": "\u0633\u0631\u062f"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "\u0642\u0637\u0639 ",
|
|
||||||
"on": "\u0645\u062a\u0635\u0644"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u062e\u0627\u0645\u0648\u0634",
|
|
||||||
"on": "\u0631\u0648\u0634\u0646"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "\u0628\u0633\u062a\u0647",
|
|
||||||
"on": "\u0628\u0627\u0632"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "\u0628\u0633\u062a\u0647",
|
|
||||||
"on": "\u0628\u0627\u0632"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "\u0639\u0627\u062f\u06cc",
|
|
||||||
"on": "\u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0634\u062f"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "\u0639\u0627\u062f\u06cc",
|
|
||||||
"on": "\u062f\u0627\u063a"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "\u0642\u0641\u0644",
|
|
||||||
"on": "\u0628\u0627\u0632"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "\u062e\u0634\u06a9",
|
|
||||||
"on": "\u0645\u0631\u0637\u0648\u0628"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "\u0639\u0627\u062f\u06cc",
|
|
||||||
"on": "\u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0634\u062f"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "\u0639\u0627\u062f\u06cc",
|
|
||||||
"on": "\u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0634\u062f"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "\u0628\u0633\u062a\u0647 \u0634\u062f\u0647",
|
|
||||||
"on": "\u0628\u0627\u0632"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "\u0628\u06cc\u0631\u0648\u0646",
|
|
||||||
"on": "\u062e\u0627\u0646\u0647"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "\u062e\u0648\u0628",
|
|
||||||
"on": "\u0645\u0634\u06a9\u0644"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "\u0627\u0645\u0646",
|
|
||||||
"on": "\u0646\u0627 \u0627\u0645\u0646"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "\u0639\u0627\u062f\u06cc",
|
|
||||||
"on": "\u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0634\u062f"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "\u0639\u0627\u062f\u06cc",
|
|
||||||
"on": "\u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0634\u062f"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "\u067e\u0627\u06a9 \u06a9\u0631\u062f\u0646",
|
|
||||||
"on": "\u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0634\u062f"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "\u0628\u0633\u062a\u0647",
|
|
||||||
"on": "\u0628\u0627\u0632"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "\u063a\u06cc\u0631\u0641\u0639\u0627\u0644",
|
|
||||||
"on": "\u0641\u0639\u0627\u0644"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "\u0628\u06cc\u06a9\u0627\u0631",
|
|
||||||
"recording": "\u062f\u0631 \u062d\u0627\u0644 \u0636\u0628\u0637",
|
|
||||||
"streaming": "\u062f\u0631 \u062d\u0627\u0644 \u067e\u062e\u0634"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "\u062e\u0648\u062f\u06a9\u0627\u0631",
|
|
||||||
"cool": "\u062e\u0646\u06a9",
|
|
||||||
"dry": "\u062e\u0634\u06a9",
|
|
||||||
"fan_only": "\u0641\u0642\u0637 \u067e\u0646\u06a9\u0647",
|
|
||||||
"heat": "\u062d\u0631\u0627\u0631\u062a",
|
|
||||||
"off": "\u062e\u0627\u0645\u0648\u0634"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc",
|
|
||||||
"configured": "\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u062f\u0647"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "\u0628\u0633\u062a\u0647 \u0634\u062f\u0647",
|
|
||||||
"closing": "\u062f\u0631 \u062d\u0627\u0644 \u0628\u0633\u062a\u0647 \u0634\u062f\u0646",
|
|
||||||
"open": "\u0628\u0627\u0632",
|
|
||||||
"opening": "\u062f\u0631 \u062d\u0627\u0644 \u0628\u0627\u0632 \u0634\u062f\u0646",
|
|
||||||
"stopped": "\u0645\u062a\u0648\u0642\u0641"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u062e\u0627\u0645\u0648\u0634",
|
|
||||||
"on": "\u0631\u0648\u0634\u0646",
|
|
||||||
"unavailable": "\u063a\u06cc\u0631\u0642\u0627\u0628\u0644 \u062f\u0633\u062a\u0631\u0633",
|
|
||||||
"unknown": "\u0646\u0627\u0645\u0634\u062e\u0635"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "\u062e\u0627\u0646\u0647",
|
|
||||||
"not_home": "\u0628\u06cc\u0631\u0648\u0646"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "\u062e\u0627\u0645\u0648\u0634",
|
|
||||||
"on": "\u0631\u0648\u0634\u0646"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "\u0628\u0633\u062a\u0647",
|
|
||||||
"closing": "\u062f\u0631 \u062d\u0627\u0644 \u0628\u0633\u062a\u0647 \u0634\u062f\u0646",
|
|
||||||
"home": "\u062e\u0627\u0646\u0647",
|
|
||||||
"locked": "\u0642\u0641\u0644 \u0634\u062f\u0647",
|
|
||||||
"not_home": "\u0628\u06cc\u0631\u0648\u0646",
|
|
||||||
"off": "\u063a\u06cc\u0631\u0641\u0639\u0627\u0644",
|
|
||||||
"ok": "\u062e\u0648\u0628",
|
|
||||||
"on": "\u0641\u0639\u0627\u0644",
|
|
||||||
"open": "\u0628\u0627\u0632",
|
|
||||||
"opening": "\u062f\u0631 \u062d\u0627\u0644 \u0628\u0627\u0632 \u0634\u062f\u0646",
|
|
||||||
"problem": "\u0645\u0634\u06a9\u0644",
|
|
||||||
"stopped": "\u0645\u062a\u0648\u0642\u0641",
|
|
||||||
"unlocked": "\u0628\u0627\u0632"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "\u063a\u06cc\u0631\u0641\u0639\u0627\u0644",
|
|
||||||
"on": "\u0641\u0639\u0627\u0644"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "\u062e\u0627\u0645\u0648\u0634",
|
|
||||||
"on": "\u0631\u0648\u0634\u0646"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "\u0642\u0641\u0644 \u0634\u062f\u0647",
|
|
||||||
"unlocked": "\u0628\u0627\u0632"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "\u0628\u06cc\u06a9\u0627\u0631",
|
|
||||||
"off": "\u062e\u0627\u0645\u0648\u0634",
|
|
||||||
"on": "\u0631\u0648\u0634\u0646",
|
|
||||||
"paused": "\u062f\u0631 \u062d\u0627\u0644\u062a \u0645\u06a9\u062b",
|
|
||||||
"playing": "\u062f\u0631 \u062d\u0627\u0644 \u067e\u062e\u0634",
|
|
||||||
"standby": "\u0622\u0645\u0627\u062f\u0647 \u0628\u0647 \u06a9\u0627\u0631"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "\u062e\u0627\u0646\u0647",
|
|
||||||
"not_home": "\u0628\u06cc\u0631\u0648\u0646"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "\u062e\u0648\u0628",
|
|
||||||
"problem": "\u0645\u0634\u06a9\u0644"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "\u062e\u0627\u0645\u0648\u0634",
|
|
||||||
"on": "\u0631\u0648\u0634\u0646"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "\u0635\u062d\u0646\u0647"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "\u063a\u06cc\u0631\u0641\u0639\u0627\u0644",
|
|
||||||
"on": "\u0641\u0639\u0627\u0644"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "\u063a\u06cc\u0631 \u0641\u0639\u0627\u0644",
|
|
||||||
"on": "\u0641\u0639\u0627\u0644"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "\u0628\u0627\u0644\u0627\u06cc \u0627\u0641\u0642",
|
|
||||||
"below_horizon": "\u0632\u06cc\u0631 \u0627\u0641\u0642"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "\u062e\u0627\u0645\u0648\u0634",
|
|
||||||
"on": "\u0631\u0648\u0634\u0646"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "\u0641\u0639\u0627\u0644",
|
|
||||||
"idle": "\u0628\u06cc\u06a9\u0627\u0631 ",
|
|
||||||
"paused": "\u0645\u062a\u0648\u0642\u0641 \u0634\u062f"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "\u062a\u0645\u06cc\u0632 \u06a9\u0631\u062f\u0646",
|
|
||||||
"off": "\u063a\u06cc\u0631 \u0641\u0639\u0627\u0644",
|
|
||||||
"on": "\u0641\u063a\u0627\u0644",
|
|
||||||
"paused": "\u0645\u06a9\u062b"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"cloudy": "\u0627\u0628\u0631\u06cc",
|
|
||||||
"fog": "\u0645\u0647",
|
|
||||||
"hail": "\u062a\u06af\u0631\u06af",
|
|
||||||
"lightning": "\u0631\u0639\u062f \u0648 \u0628\u0631\u0642",
|
|
||||||
"partlycloudy": "\u0646\u06cc\u0645\u0647 \u0627\u0628\u0631\u06cc",
|
|
||||||
"pouring": "\u0631\u06cc\u062e\u062a\u0646",
|
|
||||||
"rainy": "\u0628\u0627\u0631\u0627\u0646\u06cc",
|
|
||||||
"snowy": "\u0628\u0631\u0641\u06cc",
|
|
||||||
"snowy-rainy": "\u0628\u0631\u0641\u06cc\u060c \u0628\u0627\u0631\u0627\u0646\u06cc",
|
|
||||||
"sunny": "\u0622\u0641\u062a\u0627\u0628\u06cc",
|
|
||||||
"windy": "\u0628\u0627\u062f",
|
|
||||||
"windy-variant": "\u0628\u0627\u062f"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "\u0645\u0631\u062f\u0647",
|
|
||||||
"initializing": "\u062f\u0631 \u062d\u0627\u0644 \u0622\u0645\u0627\u062f\u0647 \u0634\u062f\u0646",
|
|
||||||
"ready": "\u0622\u0645\u0627\u062f\u0647",
|
|
||||||
"sleeping": "\u062f\u0631 \u062d\u0627\u0644 \u062e\u0648\u0627\u0628"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "\u0645\u0631\u062f\u0647 ({query_stage})",
|
|
||||||
"initializing": "\u062f\u0631 \u062d\u0627\u0644 \u0622\u0645\u0627\u062f\u0647 \u0634\u062f\u0646 ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Viritetty",
|
|
||||||
"armed_away": "Viritetty (poissa)",
|
|
||||||
"armed_custom_bypass": "Virityksen ohittaminen",
|
|
||||||
"armed_home": "Viritetty (kotona)",
|
|
||||||
"armed_night": "Viritetty (y\u00f6)",
|
|
||||||
"arming": "Viritys",
|
|
||||||
"disarmed": "Viritys pois",
|
|
||||||
"disarming": "Virityksen poisto",
|
|
||||||
"pending": "Odottaa",
|
|
||||||
"triggered": "Lauennut"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Pois",
|
|
||||||
"on": "P\u00e4\u00e4ll\u00e4"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normaali",
|
|
||||||
"on": "Alhainen"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Normaali",
|
|
||||||
"on": "Kylm\u00e4"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Ei yhteytt\u00e4",
|
|
||||||
"on": "Yhdistetty"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Pois",
|
|
||||||
"on": "P\u00e4\u00e4ll\u00e4"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Suljettu",
|
|
||||||
"on": "Auki"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Suljettu",
|
|
||||||
"on": "Auki"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Pois",
|
|
||||||
"on": "Havaittu"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Normaali",
|
|
||||||
"on": "Kuuma"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Lukittu",
|
|
||||||
"on": "Auki"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Kuiva",
|
|
||||||
"on": "Kostea"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Ei liikett\u00e4",
|
|
||||||
"on": "Havaittu"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Ei liikett\u00e4",
|
|
||||||
"on": "Havaittu"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Suljettu",
|
|
||||||
"on": "Auki"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Poissa",
|
|
||||||
"on": "Kotona"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Ongelma"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Turvallinen",
|
|
||||||
"on": "Vaarallinen"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Ei savua",
|
|
||||||
"on": "Havaittu"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Ei \u00e4\u00e4nt\u00e4",
|
|
||||||
"on": "Havaittu"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Ei v\u00e4rin\u00e4\u00e4",
|
|
||||||
"on": "Havaittu"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Suljettu",
|
|
||||||
"on": "Auki"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Pois p\u00e4\u00e4lt\u00e4",
|
|
||||||
"on": "P\u00e4\u00e4ll\u00e4"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Lepotilassa",
|
|
||||||
"recording": "Tallentaa",
|
|
||||||
"streaming": "Toistaa"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Automaatilla",
|
|
||||||
"cool": "J\u00e4\u00e4hdytys",
|
|
||||||
"dry": "Kuivaus",
|
|
||||||
"fan_only": "Tuuletus",
|
|
||||||
"heat": "L\u00e4mmitys",
|
|
||||||
"heat_cool": "L\u00e4mmitys/j\u00e4\u00e4hdytys",
|
|
||||||
"off": "Pois"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "M\u00e4\u00e4rittele",
|
|
||||||
"configured": "M\u00e4\u00e4ritetty"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Suljettu",
|
|
||||||
"closing": "Suljetaan",
|
|
||||||
"open": "Auki",
|
|
||||||
"opening": "Avataan",
|
|
||||||
"stopped": "Pys\u00e4ytetty"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Pois",
|
|
||||||
"on": "P\u00e4\u00e4ll\u00e4",
|
|
||||||
"unavailable": "Ei saatavissa",
|
|
||||||
"unknown": "Tuntematon"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Kotona",
|
|
||||||
"not_home": "Poissa"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Pois",
|
|
||||||
"on": "P\u00e4\u00e4ll\u00e4"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Suljettu",
|
|
||||||
"closing": "Suljetaan",
|
|
||||||
"home": "Kotona",
|
|
||||||
"locked": "Lukittu",
|
|
||||||
"not_home": "Poissa",
|
|
||||||
"off": "Pois",
|
|
||||||
"ok": "Ok",
|
|
||||||
"on": "P\u00e4\u00e4ll\u00e4",
|
|
||||||
"open": "Auki",
|
|
||||||
"opening": "Avataan",
|
|
||||||
"problem": "Ongelma",
|
|
||||||
"stopped": "Pys\u00e4ytetty",
|
|
||||||
"unlocked": "Avattu"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Pois",
|
|
||||||
"on": "P\u00e4\u00e4ll\u00e4"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Pois",
|
|
||||||
"on": "P\u00e4\u00e4ll\u00e4"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Lukittu",
|
|
||||||
"unlocked": "Auki"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Lepotilassa",
|
|
||||||
"off": "Pois",
|
|
||||||
"on": "P\u00e4\u00e4ll\u00e4",
|
|
||||||
"paused": "Pys\u00e4ytetty",
|
|
||||||
"playing": "Toistaa",
|
|
||||||
"standby": "Lepotilassa"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Koti",
|
|
||||||
"not_home": "Poissa"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "Ok",
|
|
||||||
"problem": "Ongelma"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Pois",
|
|
||||||
"on": "P\u00e4\u00e4ll\u00e4"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Skenehallinta"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Pois",
|
|
||||||
"on": "P\u00e4\u00e4ll\u00e4"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Pois",
|
|
||||||
"on": "P\u00e4\u00e4ll\u00e4"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Horisontin yll\u00e4",
|
|
||||||
"below_horizon": "Horisontin alapuolella"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Pois",
|
|
||||||
"on": "P\u00e4\u00e4ll\u00e4"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "aktiivinen",
|
|
||||||
"idle": "Lepotilassa",
|
|
||||||
"paused": "Pys\u00e4ytetty"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Imuroi",
|
|
||||||
"docked": "Telakoituna",
|
|
||||||
"error": "Virhe",
|
|
||||||
"idle": "Lepotilassa",
|
|
||||||
"off": "Pois p\u00e4\u00e4lt\u00e4",
|
|
||||||
"on": "P\u00e4\u00e4ll\u00e4",
|
|
||||||
"paused": "Pys\u00e4ytetty",
|
|
||||||
"returning": "Palaamassa telakkaan"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Y\u00f6, selke\u00e4\u00e4",
|
|
||||||
"cloudy": "Pilvist\u00e4",
|
|
||||||
"exceptional": "Poikkeuksellinen",
|
|
||||||
"fog": "Sumuista",
|
|
||||||
"hail": "Raekuuroja",
|
|
||||||
"lightning": "Ukkoskuuroja",
|
|
||||||
"lightning-rainy": "Ukkosvaara, sateista",
|
|
||||||
"partlycloudy": "Osittain pilvist\u00e4",
|
|
||||||
"pouring": "Kaatosadetta",
|
|
||||||
"rainy": "Sateista",
|
|
||||||
"snowy": "Lumisadetta",
|
|
||||||
"snowy-rainy": "R\u00e4nt\u00e4sadetta",
|
|
||||||
"sunny": "Aurinkoista",
|
|
||||||
"windy": "Tuulista",
|
|
||||||
"windy-variant": "Tuulista"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Kuollut",
|
|
||||||
"initializing": "Alustaa",
|
|
||||||
"ready": "Valmis",
|
|
||||||
"sleeping": "Lepotilassa"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Kuollut ({query_stage})",
|
|
||||||
"initializing": "Alustaa ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Activ\u00e9",
|
|
||||||
"armed_away": "Enclench\u00e9e (absent)",
|
|
||||||
"armed_custom_bypass": "Activ\u00e9e avec exception",
|
|
||||||
"armed_home": "Enclench\u00e9e (pr\u00e9sent)",
|
|
||||||
"armed_night": "Enclench\u00e9 (nuit)",
|
|
||||||
"arming": "Activation",
|
|
||||||
"disarmed": "D\u00e9sactiv\u00e9e",
|
|
||||||
"disarming": "D\u00e9sactivation",
|
|
||||||
"pending": "En attente",
|
|
||||||
"triggered": "D\u00e9clench\u00e9"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Inactif",
|
|
||||||
"on": "Actif"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Faible"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Normale",
|
|
||||||
"on": "Froid"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "D\u00e9connect\u00e9",
|
|
||||||
"on": "Connect\u00e9"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Inactif",
|
|
||||||
"on": "Actif"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Ferm\u00e9e",
|
|
||||||
"on": "Ouverte"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Ferm\u00e9e",
|
|
||||||
"on": "Ouverte"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Non d\u00e9tect\u00e9",
|
|
||||||
"on": "D\u00e9tect\u00e9"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Normale",
|
|
||||||
"on": "Chaud"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Verrouill\u00e9",
|
|
||||||
"on": "D\u00e9verrouill\u00e9"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Sec",
|
|
||||||
"on": "Humide"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "RAS",
|
|
||||||
"on": "D\u00e9tect\u00e9"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "RAS",
|
|
||||||
"on": "D\u00e9tect\u00e9"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Ferm\u00e9",
|
|
||||||
"on": "Ouvert"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Absent",
|
|
||||||
"on": "Pr\u00e9sent"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Probl\u00e8me"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "S\u00e9curis\u00e9",
|
|
||||||
"on": "Dangereux"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "RAS",
|
|
||||||
"on": "D\u00e9tect\u00e9"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "RAS",
|
|
||||||
"on": "D\u00e9tect\u00e9"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "RAS",
|
|
||||||
"on": "D\u00e9tect\u00e9e"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Ferm\u00e9e",
|
|
||||||
"on": "Ouverte"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Inactif",
|
|
||||||
"on": "Actif"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "En veille",
|
|
||||||
"recording": "Enregistrement",
|
|
||||||
"streaming": "Diffusion en cours"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Auto",
|
|
||||||
"cool": "Frais",
|
|
||||||
"dry": "Sec",
|
|
||||||
"fan_only": "Ventilateur seul",
|
|
||||||
"heat": "Chauffe",
|
|
||||||
"heat_cool": "Chaud/Froid",
|
|
||||||
"off": "Inactif"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Configurer",
|
|
||||||
"configured": "Configur\u00e9"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Ferm\u00e9",
|
|
||||||
"closing": "Fermeture",
|
|
||||||
"open": "Ouvert",
|
|
||||||
"opening": "Ouverture",
|
|
||||||
"stopped": "Arr\u00eat\u00e9"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Inactif",
|
|
||||||
"on": "Actif",
|
|
||||||
"unavailable": "Indisponible",
|
|
||||||
"unknown": "Inconnu"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Pr\u00e9sent",
|
|
||||||
"not_home": "Absent"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "\u00c9teint",
|
|
||||||
"on": "Marche"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Ferm\u00e9",
|
|
||||||
"closing": "Fermeture",
|
|
||||||
"home": "Pr\u00e9sent",
|
|
||||||
"locked": "Verrouill\u00e9",
|
|
||||||
"not_home": "Absent",
|
|
||||||
"off": "Inactif",
|
|
||||||
"ok": "OK",
|
|
||||||
"on": "Actif",
|
|
||||||
"open": "Ouvert",
|
|
||||||
"opening": "Ouverture",
|
|
||||||
"problem": "Probl\u00e8me",
|
|
||||||
"stopped": "Arr\u00eat\u00e9",
|
|
||||||
"unlocked": "D\u00e9verrouill\u00e9"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Arr\u00eat\u00e9",
|
|
||||||
"on": "Marche"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "\u00c9teinte",
|
|
||||||
"on": "Actif"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Verrouill\u00e9",
|
|
||||||
"unlocked": "D\u00e9verrouill\u00e9"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "En veille",
|
|
||||||
"off": "\u00c9teint",
|
|
||||||
"on": "Marche",
|
|
||||||
"paused": "En pause",
|
|
||||||
"playing": "Lecture en cours",
|
|
||||||
"standby": "En veille"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Pr\u00e9sent",
|
|
||||||
"not_home": "Absent"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "OK",
|
|
||||||
"problem": "Probl\u00e8me"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Arr\u00eat",
|
|
||||||
"on": "Actif"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Sc\u00e9nario"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Inactif",
|
|
||||||
"on": "Actif"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Inactif",
|
|
||||||
"on": "Actif"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Au-dessus de l'horizon",
|
|
||||||
"below_horizon": "Sous l\u2019horizon"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Inactif",
|
|
||||||
"on": "On"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "actif",
|
|
||||||
"idle": "en veille",
|
|
||||||
"paused": "en pause"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Nettoyage",
|
|
||||||
"docked": "Sur la base",
|
|
||||||
"error": "Erreur",
|
|
||||||
"idle": "Inactif",
|
|
||||||
"off": "Off",
|
|
||||||
"on": "On",
|
|
||||||
"paused": "En pause",
|
|
||||||
"returning": "Retourne \u00e0 la base"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Nuit d\u00e9gag\u00e9e",
|
|
||||||
"cloudy": "Nuageux",
|
|
||||||
"exceptional": "Exceptionnel",
|
|
||||||
"fog": "Brouillard",
|
|
||||||
"hail": "Gr\u00eale",
|
|
||||||
"lightning": "Orage",
|
|
||||||
"lightning-rainy": "Orage / Pluie",
|
|
||||||
"partlycloudy": "Partiellement nuageux",
|
|
||||||
"pouring": "Averses",
|
|
||||||
"rainy": "Pluie",
|
|
||||||
"snowy": "Neige",
|
|
||||||
"snowy-rainy": "Neige / Pluie",
|
|
||||||
"sunny": "Soleil",
|
|
||||||
"windy": "Vent",
|
|
||||||
"windy-variant": "Vent"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Morte",
|
|
||||||
"initializing": "Initialisation",
|
|
||||||
"ready": "Pr\u00eat",
|
|
||||||
"sleeping": "En veille"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Morte ( {query_stage} )",
|
|
||||||
"initializing": "Initialisation ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,219 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Scharf",
|
|
||||||
"armed_away": "Scharf usswerts",
|
|
||||||
"armed_home": "Scharf dihei",
|
|
||||||
"armed_night": "Scharf Nacht",
|
|
||||||
"arming": "Scharf stel\u00e4",
|
|
||||||
"disarmed": "Nid scharf",
|
|
||||||
"disarming": "Entsperr\u00e4",
|
|
||||||
"pending": "Usstehehnd",
|
|
||||||
"triggered": "Usgl\u00f6sst"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Us",
|
|
||||||
"on": "Ah"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normau",
|
|
||||||
"on": "Nidrig"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Trennt",
|
|
||||||
"on": "Verbunge"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Us",
|
|
||||||
"on": "Ah"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Frei",
|
|
||||||
"on": "Erk\u00e4nnt"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"on": "Heiss"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Troch\u00e4",
|
|
||||||
"on": "Nass"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Ok",
|
|
||||||
"on": "Erch\u00e4nt"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Ok",
|
|
||||||
"on": "Erch\u00e4nt"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Gschlos\u00e4",
|
|
||||||
"on": "Off\u00e4"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Nid Dahei",
|
|
||||||
"on": "Dahei"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Problem"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Sicher",
|
|
||||||
"on": "Unsicher"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Ok",
|
|
||||||
"on": "Erch\u00e4nt"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Ok",
|
|
||||||
"on": "Erch\u00e4nt"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Ok",
|
|
||||||
"on": "Erch\u00e4nt"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Us",
|
|
||||||
"on": "Ah"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "L\u00e4\u00e4rlauf",
|
|
||||||
"recording": "Nimt uf",
|
|
||||||
"streaming": "Streamt"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Automatik",
|
|
||||||
"cool": "Ch\u00fc\u00e4l\u00e4",
|
|
||||||
"dry": "Troch\u00e4",
|
|
||||||
"fan_only": "Nur L\u00fcfter",
|
|
||||||
"heat": "Heiz\u00e4",
|
|
||||||
"off": "Us"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Konfiguri\u00e4r\u00e4",
|
|
||||||
"configured": "Konfiguri\u00e4rt"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Gschloss\u00e4",
|
|
||||||
"closing": "Am schliesse",
|
|
||||||
"open": "Off\u00e4",
|
|
||||||
"opening": "Am \u00f6ffn\u00e4",
|
|
||||||
"stopped": "Gstoppt"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Us",
|
|
||||||
"on": "Ah",
|
|
||||||
"unavailable": "Nid verf\u00fc\u00e4gbar",
|
|
||||||
"unknown": "Unbekannt"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Dahei",
|
|
||||||
"not_home": "Nid Dahei"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Us",
|
|
||||||
"on": "Ah"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Gschloss\u00e4",
|
|
||||||
"closing": "Schl\u00fcss\u00e4",
|
|
||||||
"home": "Dahei",
|
|
||||||
"locked": "Gsperrt",
|
|
||||||
"not_home": "Nid Dahei",
|
|
||||||
"off": "Us",
|
|
||||||
"ok": "Ok",
|
|
||||||
"on": "Ah",
|
|
||||||
"open": "Off\u00e4",
|
|
||||||
"opening": "Am \u00f6ffn\u00e4",
|
|
||||||
"problem": "Problem",
|
|
||||||
"stopped": "Gstoppt",
|
|
||||||
"unlocked": "Entsperrt"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Us",
|
|
||||||
"on": "Ah"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Us",
|
|
||||||
"on": "Ah"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Gsperrt",
|
|
||||||
"unlocked": "Entsperrt"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "L\u00e4\u00e4rlauf",
|
|
||||||
"off": "Us",
|
|
||||||
"on": "Ah",
|
|
||||||
"paused": "Pousi\u00e4r\u00e4",
|
|
||||||
"playing": "Am spil\u00e4",
|
|
||||||
"standby": "Standby"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "OK",
|
|
||||||
"problem": "Problem"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Us",
|
|
||||||
"on": "Ah"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Szen\u00e4"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Us",
|
|
||||||
"on": "Ah"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Us",
|
|
||||||
"on": "Ah"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "\u00dcberem Horizont",
|
|
||||||
"below_horizon": "Underem Horizont"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Us",
|
|
||||||
"on": "Ah"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Putze",
|
|
||||||
"error": "F\u00e4hler",
|
|
||||||
"off": "Us",
|
|
||||||
"on": "I",
|
|
||||||
"paused": "Pause"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Klar, Nacht",
|
|
||||||
"cloudy": "Bedeckt",
|
|
||||||
"fog": "N\u00e4bu",
|
|
||||||
"hail": "H\u00e4gu",
|
|
||||||
"lightning": "Blitz\u00e4",
|
|
||||||
"lightning-rainy": "Blitz\u00e4, R\u00e4ge",
|
|
||||||
"partlycloudy": "Teilwis bedeckt",
|
|
||||||
"pouring": "Sch\u00fctte",
|
|
||||||
"rainy": "R\u00e4gn\u00e4risch",
|
|
||||||
"snowy": "Schneie",
|
|
||||||
"snowy-rainy": "Schneie, r\u00e4gnerisch",
|
|
||||||
"sunny": "sunnig",
|
|
||||||
"windy": "windig",
|
|
||||||
"windy-variant": "windig"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Tod",
|
|
||||||
"initializing": "Inizialisi\u00e4r\u00e4",
|
|
||||||
"ready": "Parat",
|
|
||||||
"sleeping": "Schlaf\u00e4"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Tod ({query_stage})",
|
|
||||||
"initializing": "Inizialisi\u00e4r\u00e4 ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "\u05d3\u05e8\u05d5\u05da",
|
|
||||||
"armed_away": "\u05d3\u05e8\u05d5\u05da \u05dc\u05d0 \u05d1\u05d1\u05d9\u05ea",
|
|
||||||
"armed_custom_bypass": "\u05de\u05e2\u05e7\u05e3 \u05de\u05d5\u05ea\u05d0\u05dd \u05d0\u05d9\u05e9\u05d9\u05ea \u05d3\u05e8\u05d5\u05da",
|
|
||||||
"armed_home": "\u05d4\u05d1\u05d9\u05ea \u05d3\u05e8\u05d5\u05da",
|
|
||||||
"armed_night": "\u05d3\u05e8\u05d5\u05da \u05dc\u05d9\u05dc\u05d4",
|
|
||||||
"arming": "\u05de\u05e4\u05e2\u05d9\u05dc",
|
|
||||||
"disarmed": "\u05de\u05e0\u05d5\u05d8\u05e8\u05dc",
|
|
||||||
"disarming": "\u05de\u05e0\u05d8\u05e8\u05dc",
|
|
||||||
"pending": "\u05de\u05de\u05ea\u05d9\u05df",
|
|
||||||
"triggered": "\u05d4\u05d5\u05e4\u05e2\u05dc"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "\u05db\u05d1\u05d5\u05d9",
|
|
||||||
"on": "\u05d3\u05dc\u05d5\u05e7"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "\u05e0\u05d5\u05e8\u05de\u05dc\u05d9",
|
|
||||||
"on": "\u05e0\u05de\u05d5\u05da"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "\u05e8\u05d2\u05d9\u05dc",
|
|
||||||
"on": "\u05e7\u05b7\u05e8"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "\u05de\u05e0\u05d5\u05ea\u05e7",
|
|
||||||
"on": "\u05de\u05d7\u05d5\u05d1\u05e8"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u05db\u05d1\u05d5\u05d9",
|
|
||||||
"on": "\u05d3\u05dc\u05d5\u05e7"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "\u05e1\u05d2\u05d5\u05e8\u05d4",
|
|
||||||
"on": "\u05e4\u05ea\u05d5\u05d7\u05d4"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "\u05e1\u05d2\u05d5\u05e8\u05d4",
|
|
||||||
"on": "\u05e4\u05ea\u05d5\u05d7\u05d4"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "\u05e0\u05e7\u05d9",
|
|
||||||
"on": "\u05d0\u05d5\u05ea\u05e8"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "\u05e8\u05d2\u05d9\u05dc",
|
|
||||||
"on": "\u05d7\u05dd"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "\u05e0\u05e2\u05d5\u05dc",
|
|
||||||
"on": "\u05dc\u05d0 \u05e0\u05e2\u05d5\u05dc"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "\u05d9\u05d1\u05e9",
|
|
||||||
"on": "\u05e8\u05d8\u05d5\u05d1"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "\u05e0\u05e7\u05d9",
|
|
||||||
"on": "\u05d6\u05d5\u05d4\u05d4"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "\u05e0\u05e7\u05d9",
|
|
||||||
"on": "\u05d6\u05d5\u05d4\u05d4"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "\u05e1\u05d2\u05d5\u05e8",
|
|
||||||
"on": "\u05e4\u05ea\u05d5\u05d7"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "\u05dc\u05d0 \u05e0\u05d5\u05db\u05d7",
|
|
||||||
"on": "\u05e0\u05d5\u05db\u05d7"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "\u05d0\u05d5\u05e7\u05d9\u05d9",
|
|
||||||
"on": "\u05d1\u05e2\u05d9\u05d9\u05d4"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "\u05d1\u05d8\u05d5\u05d7",
|
|
||||||
"on": "\u05dc\u05d0 \u05d1\u05d8\u05d5\u05d7"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "\u05e0\u05e7\u05d9",
|
|
||||||
"on": "\u05d0\u05d5\u05ea\u05e8"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "\u05e0\u05e7\u05d9",
|
|
||||||
"on": "\u05d0\u05d5\u05ea\u05e8"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "\u05e0\u05e7\u05d9",
|
|
||||||
"on": "\u05d0\u05d5\u05ea\u05e8"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "\u05e1\u05d2\u05d5\u05e8",
|
|
||||||
"on": "\u05e4\u05ea\u05d5\u05d7"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "\u05db\u05d1\u05d5\u05d9",
|
|
||||||
"on": "\u05d3\u05dc\u05d5\u05e7"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "\u05de\u05d7\u05db\u05d4",
|
|
||||||
"recording": "\u05de\u05e7\u05dc\u05d9\u05d8",
|
|
||||||
"streaming": "\u05de\u05d6\u05e8\u05d9\u05dd"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "\u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9",
|
|
||||||
"cool": "\u05e7\u05e8\u05d5\u05e8",
|
|
||||||
"dry": "\u05d9\u05d1\u05e9",
|
|
||||||
"fan_only": "\u05de\u05d0\u05d5\u05d5\u05e8\u05e8 \u05d1\u05dc\u05d1\u05d3",
|
|
||||||
"heat": "\u05d7\u05d9\u05de\u05d5\u05dd",
|
|
||||||
"heat_cool": "\u05d7\u05d9\u05de\u05d5\u05dd/\u05e7\u05d9\u05e8\u05d5\u05e8",
|
|
||||||
"off": "\u05db\u05d1\u05d5\u05d9"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "\u05d4\u05d2\u05d3\u05e8",
|
|
||||||
"configured": "\u05d4\u05d5\u05d2\u05d3\u05e8"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "\u05e0\u05e1\u05d2\u05e8",
|
|
||||||
"closing": "\u05e1\u05d5\u05d2\u05e8",
|
|
||||||
"open": "\u05e4\u05ea\u05d5\u05d7",
|
|
||||||
"opening": "\u05e4\u05d5\u05ea\u05d7",
|
|
||||||
"stopped": "\u05e2\u05e6\u05d5\u05e8"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u05db\u05d1\u05d5\u05d9",
|
|
||||||
"on": "\u05de\u05d5\u05e4\u05e2\u05dc",
|
|
||||||
"unavailable": "\u05dc\u05d0 \u05d6\u05de\u05d9\u05df",
|
|
||||||
"unknown": "\u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "\u05d1\u05d1\u05d9\u05ea",
|
|
||||||
"not_home": "\u05dc\u05d0 \u05d1\u05d1\u05d9\u05ea"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "\u05db\u05d1\u05d5\u05d9",
|
|
||||||
"on": "\u05d3\u05dc\u05d5\u05e7"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "\u05e1\u05d2\u05d5\u05e8",
|
|
||||||
"closing": "\u05e1\u05d5\u05d2\u05e8",
|
|
||||||
"home": "\u05d1\u05d1\u05d9\u05ea",
|
|
||||||
"locked": "\u05e0\u05e2\u05d5\u05dc",
|
|
||||||
"not_home": "\u05dc\u05d0 \u05d1\u05d1\u05d9\u05ea",
|
|
||||||
"off": "\u05db\u05d1\u05d5\u05d9",
|
|
||||||
"ok": "\u05ea\u05e7\u05d9\u05df",
|
|
||||||
"on": "\u05d3\u05dc\u05d5\u05e7",
|
|
||||||
"open": "\u05e4\u05ea\u05d5\u05d7",
|
|
||||||
"opening": "\u05e4\u05d5\u05ea\u05d7",
|
|
||||||
"problem": "\u05d1\u05e2\u05d9\u05d4",
|
|
||||||
"stopped": "\u05e0\u05e2\u05e6\u05e8",
|
|
||||||
"unlocked": "\u05e4\u05ea\u05d5\u05d7"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "\u05db\u05d1\u05d5\u05d9",
|
|
||||||
"on": "\u05d3\u05dc\u05d5\u05e7"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "\u05db\u05d1\u05d5\u05d9",
|
|
||||||
"on": "\u05d3\u05dc\u05d5\u05e7"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "\u05e0\u05e2\u05d5\u05dc",
|
|
||||||
"unlocked": "\u05e4\u05ea\u05d5\u05d7"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "\u05de\u05de\u05ea\u05d9\u05df",
|
|
||||||
"off": "\u05db\u05d1\u05d5\u05d9",
|
|
||||||
"on": "\u05d3\u05dc\u05d5\u05e7",
|
|
||||||
"paused": "\u05de\u05d5\u05e9\u05d4\u05d4",
|
|
||||||
"playing": "\u05de\u05e0\u05d2\u05df",
|
|
||||||
"standby": "\u05de\u05e6\u05d1 \u05d4\u05de\u05ea\u05e0\u05d4"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "\u05d1\u05d1\u05d9\u05ea",
|
|
||||||
"not_home": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "\u05ea\u05e7\u05d9\u05df",
|
|
||||||
"problem": "\u05d1\u05e2\u05d9\u05d4"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "\u05db\u05d1\u05d5\u05d9",
|
|
||||||
"on": "\u05d3\u05dc\u05d5\u05e7"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "\u05de\u05e4\u05e2\u05d9\u05dc \u05e1\u05e6\u05e0\u05d4"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "\u05db\u05d1\u05d5\u05d9",
|
|
||||||
"on": "\u05d3\u05dc\u05d5\u05e7"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "\u05db\u05d1\u05d5\u05d9",
|
|
||||||
"on": "\u05d3\u05dc\u05d5\u05e7"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "\u05de\u05e2\u05dc \u05d4\u05d0\u05d5\u05e4\u05e7",
|
|
||||||
"below_horizon": "\u05de\u05ea\u05d7\u05ea \u05dc\u05d0\u05d5\u05e4\u05e7"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "\u05db\u05d1\u05d5\u05d9",
|
|
||||||
"on": "\u05d3\u05dc\u05d5\u05e7"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "\u05e4\u05e2\u05d9\u05dc",
|
|
||||||
"idle": "\u05dc\u05d0 \u05e4\u05e2\u05d9\u05dc",
|
|
||||||
"paused": "\u05de\u05d5\u05e9\u05d4\u05d4"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "\u05de\u05e0\u05e7\u05d4",
|
|
||||||
"docked": "\u05d1\u05e2\u05d2\u05d9\u05e0\u05d4",
|
|
||||||
"error": "\u05e9\u05d2\u05d9\u05d0\u05d4",
|
|
||||||
"idle": "\u05de\u05de\u05ea\u05d9\u05df",
|
|
||||||
"off": "\u05de\u05db\u05d5\u05d1\u05d4",
|
|
||||||
"on": "\u05de\u05d5\u05e4\u05e2\u05dc",
|
|
||||||
"paused": "\u05de\u05d5\u05e9\u05d4\u05d4",
|
|
||||||
"returning": "\u05d7\u05d6\u05d5\u05e8 \u05dc\u05e2\u05d2\u05d9\u05e0\u05d4"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "\u05dc\u05d9\u05dc\u05d4 \u05d1\u05d4\u05d9\u05e8",
|
|
||||||
"cloudy": "\u05de\u05e2\u05d5\u05e0\u05df",
|
|
||||||
"exceptional": "\u05d9\u05d5\u05e6\u05d0 \u05d3\u05d5\u05e4\u05df",
|
|
||||||
"fog": "\u05e2\u05e8\u05e4\u05dc",
|
|
||||||
"hail": "\u05d1\u05e8\u05d3",
|
|
||||||
"lightning": "\u05d1\u05e8\u05e7",
|
|
||||||
"lightning-rainy": "\u05d1\u05e8\u05e7, \u05d2\u05e9\u05d5\u05dd",
|
|
||||||
"partlycloudy": "\u05de\u05e2\u05d5\u05e0\u05df \u05d7\u05dc\u05e7\u05d9\u05ea",
|
|
||||||
"pouring": "\u05d2\u05e9\u05d5\u05dd",
|
|
||||||
"rainy": "\u05d2\u05e9\u05d5\u05dd",
|
|
||||||
"snowy": "\u05de\u05d5\u05e9\u05dc\u05d2",
|
|
||||||
"snowy-rainy": "\u05de\u05d5\u05e9\u05dc\u05d2, \u05d2\u05e9\u05d5\u05dd",
|
|
||||||
"sunny": "\u05e9\u05de\u05e9\u05d9",
|
|
||||||
"windy": "\u05e1\u05d5\u05e2\u05e8",
|
|
||||||
"windy-variant": "\u05e1\u05d5\u05e2\u05e8"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "\u05de\u05ea",
|
|
||||||
"initializing": "\u05de\u05d0\u05ea\u05d7\u05dc",
|
|
||||||
"ready": "\u05de\u05d5\u05db\u05df",
|
|
||||||
"sleeping": "\u05d9\u05e9\u05df"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "\u05de\u05ea ({query_stage})",
|
|
||||||
"initializing": "\u05de\u05d0\u05ea\u05d7\u05dc ({query_stage})"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,129 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"automation": {
|
|
||||||
"off": "\u092c\u0902\u0926"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "\u0938\u093e\u0927\u093e\u0930\u0923",
|
|
||||||
"on": "\u0915\u092e"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "\u0938\u093e\u0927\u093e\u0930\u0923",
|
|
||||||
"on": "\u0938\u0930\u094d\u0926\u0940"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "\u0921\u093f\u0938\u094d\u0915\u0928\u0947\u0915\u094d\u091f \u0915\u093f\u092f\u093e \u0917\u092f\u093e",
|
|
||||||
"on": "\u091c\u0941\u0921\u093c\u0947 \u0939\u0941\u090f"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u092c\u0902\u0926"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "\u092c\u0902\u0926",
|
|
||||||
"on": "\u0916\u0941\u0932\u093e"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "\u092c\u0902\u0926",
|
|
||||||
"on": "\u0916\u0941\u0932\u093e"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"on": "\u0917\u0930\u094d\u092e"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "\u0935\u093f\u0936\u0926",
|
|
||||||
"on": "\u0905\u0928\u0941\u0938\u0928\u094d\u0927\u093e\u0928\u093f\u0924"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"on": "\u0916\u0941\u0932\u093e"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"on": "\u0918\u0930"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "\u092c\u0902\u0926",
|
|
||||||
"on": "\u0916\u0941\u0932\u0940"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "\u092c\u0902\u0926"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"recording": "\u0930\u093f\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"cool": "\u0920\u0902\u0921\u093e",
|
|
||||||
"dry": "\u0938\u0942\u0916\u093e",
|
|
||||||
"heat": "\u0917\u0930\u094d\u092e\u0940",
|
|
||||||
"off": "\u092c\u0902\u0926"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u092c\u0902\u0926",
|
|
||||||
"unavailable": "\u0905\u0928\u0941\u092a\u0932\u092c\u094d\u0927",
|
|
||||||
"unknown": "\u0905\u0928\u091c\u093e\u0928"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "\u0918\u0930"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "\u092c\u0902\u0926",
|
|
||||||
"on": "\u091a\u093e\u0932\u0942"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"home": "\u0918\u0930",
|
|
||||||
"off": "\u092c\u0902\u0926",
|
|
||||||
"on": "\u091a\u093e\u0932\u0942",
|
|
||||||
"problem": "\u0938\u092e\u0938\u094d\u092f\u093e"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "\u092c\u0902\u0926",
|
|
||||||
"on": "\u091a\u093e\u0932\u0942"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "\u092c\u0902\u0926",
|
|
||||||
"on": "\u091a\u093e\u0932\u0942"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "\u0905\u0935\u0930\u094b\u0927\u093f\u0924",
|
|
||||||
"unlocked": "\u0916\u0941\u0932\u093e"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"off": "\u092c\u0902\u0926",
|
|
||||||
"on": "\u091a\u093e\u0932\u0942"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "\u0920\u0940\u0915 \u0939\u0948",
|
|
||||||
"problem": "\u0938\u092e\u0938\u094d\u092f\u093e"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "\u092c\u0902\u0926",
|
|
||||||
"on": "\u091a\u093e\u0932\u0942"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "\u092c\u0902\u0926",
|
|
||||||
"on": "\u091a\u093e\u0932\u0942"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "\u092c\u0902\u0926",
|
|
||||||
"on": "\u091a\u093e\u0932\u0942"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "\u0915\u094d\u0937\u093f\u0924\u093f\u091c \u0938\u0947 \u090a\u092a\u0930",
|
|
||||||
"below_horizon": "\u0915\u094d\u0937\u093f\u0924\u093f\u091c \u0915\u0947 \u0928\u0940\u091a\u0947"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "\u092c\u0902\u0926",
|
|
||||||
"on": "\u091a\u093e\u0932\u0942"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"ready": "\u0924\u0948\u092f\u093e\u0930",
|
|
||||||
"sleeping": "\u0938\u094b\u092f\u093e \u0939\u0941\u0906"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": " ( {query_stage} )",
|
|
||||||
"initializing": "\u0906\u0930\u0902\u092d ({query_stage})"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Aktiviran",
|
|
||||||
"armed_away": "Aktiviran odsutno",
|
|
||||||
"armed_custom_bypass": "Aktiviran",
|
|
||||||
"armed_home": "Aktiviran doma",
|
|
||||||
"armed_night": "Aktiviran no\u010dni",
|
|
||||||
"arming": "Aktiviranje",
|
|
||||||
"disarmed": "Deaktiviran",
|
|
||||||
"disarming": "Deaktiviranje",
|
|
||||||
"pending": "U tijeku",
|
|
||||||
"triggered": "Okinut"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normalno",
|
|
||||||
"on": "Prazna"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Normalno",
|
|
||||||
"on": "Hladno"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Nije spojen",
|
|
||||||
"on": "Spojen"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Zatvoreno",
|
|
||||||
"on": "Otvori"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Zatvoren",
|
|
||||||
"on": "Otvoreno"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "\u010cisto",
|
|
||||||
"on": "Otkriveno"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Normalno",
|
|
||||||
"on": "Vru\u0107e"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Zaklju\u010dano",
|
|
||||||
"on": "Otklju\u010dano"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Suho",
|
|
||||||
"on": "Mokro"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "\u010cisto",
|
|
||||||
"on": "Otkriveno"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "\u010cisto",
|
|
||||||
"on": "Otkriveno"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Zatvoreno",
|
|
||||||
"on": "Otvoreno"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Odsutan",
|
|
||||||
"on": "Doma"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Problem"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Sigurno",
|
|
||||||
"on": "Nesigurno"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "\u010cisto",
|
|
||||||
"on": "Otkriveno"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "\u010cisto",
|
|
||||||
"on": "Otkriveno"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "\u010cisto",
|
|
||||||
"on": "Otkriveno"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Zatvoreno",
|
|
||||||
"on": "Otvoreno"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Neaktivan",
|
|
||||||
"recording": "Snimanje",
|
|
||||||
"streaming": "Oda\u0161ilja"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Auto",
|
|
||||||
"cool": "Hla\u0111enje",
|
|
||||||
"dry": "Suho",
|
|
||||||
"fan_only": "Samo ventilator",
|
|
||||||
"heat": "Grijanje",
|
|
||||||
"heat_cool": "Grijanje/Hla\u0111enje",
|
|
||||||
"off": "Isklju\u010den"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Konfiguriranje",
|
|
||||||
"configured": "Konfiguriran"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Zatvoreno",
|
|
||||||
"closing": "Zatvaranje",
|
|
||||||
"open": "Otvoreno",
|
|
||||||
"opening": "Otvaranje",
|
|
||||||
"stopped": "zaustavljen"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den",
|
|
||||||
"unavailable": "Nedostupan",
|
|
||||||
"unknown": "Nepoznato"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Doma",
|
|
||||||
"not_home": "Odsutan"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Zatvoreno",
|
|
||||||
"closing": "Zatvaranje",
|
|
||||||
"home": "Doma",
|
|
||||||
"locked": "Zaklju\u010dano",
|
|
||||||
"not_home": "Odsutan",
|
|
||||||
"off": "Uklju\u010deno",
|
|
||||||
"ok": "U redu",
|
|
||||||
"on": "Uklju\u010deno",
|
|
||||||
"open": "Otvoreno",
|
|
||||||
"opening": "Otvaranje",
|
|
||||||
"problem": "Problem",
|
|
||||||
"stopped": "Zautavljeno",
|
|
||||||
"unlocked": "Otklju\u010dano"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Isklju\u010deno",
|
|
||||||
"on": "Uklju\u010deno"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Zaklju\u010dan",
|
|
||||||
"unlocked": "Otklju\u010dan"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Neaktivan",
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den",
|
|
||||||
"paused": "Pauzirano",
|
|
||||||
"playing": "Prikazivanje",
|
|
||||||
"standby": "U stanju \u010dekanja"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Doma",
|
|
||||||
"not_home": "Odsutan"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "u redu",
|
|
||||||
"problem": "Problem"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Scene"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Iznad horizonta",
|
|
||||||
"below_horizon": "Ispod horizonta"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Isklju\u010den",
|
|
||||||
"on": "Uklju\u010den"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "aktivan",
|
|
||||||
"idle": "neaktivan",
|
|
||||||
"paused": "pauzirano"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "\u010ci\u0161\u0107enje",
|
|
||||||
"docked": "Usidreni",
|
|
||||||
"error": "Gre\u0161ka",
|
|
||||||
"idle": "Neaktivan",
|
|
||||||
"off": "Uga\u0161eno",
|
|
||||||
"on": "Upaljeno",
|
|
||||||
"paused": "Pauzirano",
|
|
||||||
"returning": "Povratak na dok"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Vedro, no\u0107",
|
|
||||||
"cloudy": "Obla\u010dno",
|
|
||||||
"exceptional": "Izuzetan",
|
|
||||||
"fog": "Magla",
|
|
||||||
"hail": "Tu\u010da",
|
|
||||||
"lightning": "Munja",
|
|
||||||
"lightning-rainy": "Munja, ki\u0161na",
|
|
||||||
"partlycloudy": "Djelomi\u010dno obla\u010dno",
|
|
||||||
"pouring": "Lije",
|
|
||||||
"rainy": "Ki\u0161ovito",
|
|
||||||
"snowy": "Snje\u017eno",
|
|
||||||
"snowy-rainy": "Snje\u017eno, ki\u0161no",
|
|
||||||
"sunny": "Sun\u010dano",
|
|
||||||
"windy": "Vjetrovito",
|
|
||||||
"windy-variant": "Vjetrovito"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Mrtav",
|
|
||||||
"initializing": "Inicijalizacija",
|
|
||||||
"ready": "Spreman",
|
|
||||||
"sleeping": "Spavanje"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Mrtav ({query_stage})",
|
|
||||||
"initializing": "Inicijalizacija ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "\u00c9les\u00edtve",
|
|
||||||
"armed_away": "\u00c9les\u00edtve t\u00e1vol",
|
|
||||||
"armed_custom_bypass": "\u00c9les\u00edtve \u00e1thidal\u00e1ssal",
|
|
||||||
"armed_home": "\u00c9les\u00edtve otthon",
|
|
||||||
"armed_night": "\u00c9les\u00edtve \u00e9jszaka",
|
|
||||||
"arming": "\u00c9les\u00edt\u00e9s",
|
|
||||||
"disarmed": "Hat\u00e1stalan\u00edtva",
|
|
||||||
"disarming": "Hat\u00e1stalan\u00edt\u00e1s",
|
|
||||||
"pending": "F\u00fcgg\u0151ben",
|
|
||||||
"triggered": "Riaszt\u00e1s"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Ki",
|
|
||||||
"on": "Be"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Norm\u00e1l",
|
|
||||||
"on": "Alacsony"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Norm\u00e1l",
|
|
||||||
"on": "Hideg"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Lekapcsol\u00f3dva",
|
|
||||||
"on": "Kapcsol\u00f3dva"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Ki",
|
|
||||||
"on": "Be"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Z\u00e1rva",
|
|
||||||
"on": "Nyitva"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Z\u00e1rva",
|
|
||||||
"on": "Nyitva"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Norm\u00e1l",
|
|
||||||
"on": "\u00c9szlelve"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Norm\u00e1l",
|
|
||||||
"on": "Meleg"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Bez\u00e1rva",
|
|
||||||
"on": "Kinyitva"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Sz\u00e1raz",
|
|
||||||
"on": "Nedves"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Norm\u00e1l",
|
|
||||||
"on": "\u00c9szlelve"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Norm\u00e1l",
|
|
||||||
"on": "\u00c9szlelve"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Z\u00e1rva",
|
|
||||||
"on": "Nyitva"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "T\u00e1vol",
|
|
||||||
"on": "Otthon"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Probl\u00e9ma"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Biztons\u00e1gos",
|
|
||||||
"on": "Nem biztons\u00e1gos"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Norm\u00e1l",
|
|
||||||
"on": "\u00c9szlelve"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Norm\u00e1l",
|
|
||||||
"on": "\u00c9szlelve"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Norm\u00e1l",
|
|
||||||
"on": "\u00c9szlelve"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Z\u00e1rva",
|
|
||||||
"on": "Nyitva"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Ki",
|
|
||||||
"on": "Be"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "T\u00e9tlen",
|
|
||||||
"recording": "Felv\u00e9tel",
|
|
||||||
"streaming": "Streamel\u00e9s"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Automatikus",
|
|
||||||
"cool": "H\u0171t\u00e9s",
|
|
||||||
"dry": "Sz\u00e1raz",
|
|
||||||
"fan_only": "Csak ventil\u00e1tor",
|
|
||||||
"heat": "F\u0171t\u00e9s",
|
|
||||||
"heat_cool": "F\u0171t\u00e9s/H\u0171t\u00e9s",
|
|
||||||
"off": "Ki"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Be\u00e1ll\u00edt\u00e1s",
|
|
||||||
"configured": "Be\u00e1ll\u00edtva"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Z\u00e1rva",
|
|
||||||
"closing": "Z\u00e1r\u00e1s",
|
|
||||||
"open": "Nyitva",
|
|
||||||
"opening": "Nyit\u00e1s",
|
|
||||||
"stopped": "Meg\u00e1ll\u00edtva"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Ki",
|
|
||||||
"on": "Be",
|
|
||||||
"unavailable": "Nem el\u00e9rhet\u0151",
|
|
||||||
"unknown": "Ismeretlen"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Otthon",
|
|
||||||
"not_home": "T\u00e1vol"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Ki",
|
|
||||||
"on": "Be"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Z\u00e1rva",
|
|
||||||
"closing": "Z\u00e1r\u00e1s",
|
|
||||||
"home": "Otthon",
|
|
||||||
"locked": "Bez\u00e1rva",
|
|
||||||
"not_home": "T\u00e1vol",
|
|
||||||
"off": "Ki",
|
|
||||||
"ok": "OK",
|
|
||||||
"on": "Be",
|
|
||||||
"open": "Nyitva",
|
|
||||||
"opening": "Nyit\u00e1s",
|
|
||||||
"problem": "Probl\u00e9ma",
|
|
||||||
"stopped": "Meg\u00e1ll\u00edtva",
|
|
||||||
"unlocked": "Kinyitva"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Ki",
|
|
||||||
"on": "Be"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Ki",
|
|
||||||
"on": "Be"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Bez\u00e1rva",
|
|
||||||
"unlocked": "Kinyitva"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "T\u00e9tlen",
|
|
||||||
"off": "Ki",
|
|
||||||
"on": "Be",
|
|
||||||
"paused": "Sz\u00fcnetel",
|
|
||||||
"playing": "Lej\u00e1tsz\u00e1s",
|
|
||||||
"standby": "K\u00e9szenl\u00e9t"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Otthon",
|
|
||||||
"not_home": "T\u00e1vol"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "OK",
|
|
||||||
"problem": "Probl\u00e9ma"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Ki",
|
|
||||||
"on": "Be"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Jelenet be\u00e1ll\u00edt\u00e1sa"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Ki",
|
|
||||||
"on": "Be"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Ki",
|
|
||||||
"on": "Be"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "L\u00e1t\u00f3hat\u00e1r felett",
|
|
||||||
"below_horizon": "L\u00e1t\u00f3hat\u00e1r alatt"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Ki",
|
|
||||||
"on": "Be"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "akt\u00edv",
|
|
||||||
"idle": "t\u00e9tlen",
|
|
||||||
"paused": "sz\u00fcneteltetve"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Takar\u00edt\u00e1s",
|
|
||||||
"docked": "Dokkolva",
|
|
||||||
"error": "Hiba",
|
|
||||||
"idle": "T\u00e9tlen",
|
|
||||||
"off": "Ki",
|
|
||||||
"on": "Be",
|
|
||||||
"paused": "Sz\u00fcneteltetve",
|
|
||||||
"returning": "Dokkol\u00e1s folyamatban"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Tiszta, \u00e9jszaka",
|
|
||||||
"cloudy": "Felh\u0151s",
|
|
||||||
"exceptional": "Kiv\u00e9teles",
|
|
||||||
"fog": "K\u00f6d",
|
|
||||||
"hail": "J\u00e9ges\u0151",
|
|
||||||
"lightning": "Vihar",
|
|
||||||
"lightning-rainy": "Viharos, es\u0151s",
|
|
||||||
"partlycloudy": "R\u00e9szben felh\u0151s",
|
|
||||||
"pouring": "Szakad",
|
|
||||||
"rainy": "Es\u0151s",
|
|
||||||
"snowy": "Havaz\u00e1s",
|
|
||||||
"snowy-rainy": "Havas, es\u0151s",
|
|
||||||
"sunny": "Napos",
|
|
||||||
"windy": "Szeles",
|
|
||||||
"windy-variant": "Szeles"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Halott",
|
|
||||||
"initializing": "Inicializ\u00e1l\u00e1s",
|
|
||||||
"ready": "K\u00e9sz",
|
|
||||||
"sleeping": "Alv\u00e1s"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Halott ({query_stage})",
|
|
||||||
"initializing": "Inicializ\u00e1l\u00e1s ({query_stage})"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "\u0536\u056b\u0576\u057e\u0561\u056e",
|
|
||||||
"armed_away": "\u0536\u056b\u0576\u057e\u0561\u056e",
|
|
||||||
"armed_custom_bypass": "\u0536\u056b\u0576\u0574\u0561\u0576 \u0561\u0576\u0570\u0561\u057f\u0561\u056f\u0561\u0576 \u056f\u0578\u0564",
|
|
||||||
"armed_home": "\u0536\u056b\u0576\u057e\u0561\u056e \u057f\u0578\u0582\u0576",
|
|
||||||
"armed_night": "\u0536\u056b\u0576\u057e\u0561\u056e \u0563\u056b\u0577\u0565\u0580",
|
|
||||||
"arming": "\u0536\u056b\u0576\u0565\u056c",
|
|
||||||
"disarmed": "\u0536\u056b\u0576\u0561\u0569\u0561\u0583\u057e\u0561\u056e",
|
|
||||||
"disarming": "\u0536\u056b\u0576\u0561\u0569\u0561\u0583\u0578\u0572",
|
|
||||||
"pending": "\u054d\u057a\u0561\u057d\u0578\u0582\u0574",
|
|
||||||
"triggered": "\u057a\u0561\u057f\u0573\u0561\u057c\u0568"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "\u0531\u0576\u057b\u0561\u057f\u057e\u0561\u056e",
|
|
||||||
"on": "\u0544\u056b\u0561\u0581\u0561\u056e"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "\u0546\u0578\u0580\u0574\u0561\u056c \u0567",
|
|
||||||
"on": "\u0551\u0561\u056e\u0580"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "\u0546\u0578\u0580\u0574\u0561\u056c",
|
|
||||||
"on": "\u054d\u0561\u057c\u0568"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "\u0531\u0576\u057b\u0561\u057f\u057e\u0561\u056e \u0567",
|
|
||||||
"on": "\u053f\u0561\u057a\u057e\u0561\u056e"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u0531\u0576\u057b\u0561\u057f\u057e\u0561\u056e",
|
|
||||||
"on": "\u0544\u056b\u0561\u0581\u0561\u056e"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "\u0553\u0561\u056f\u057e\u0561\u056e \u0567",
|
|
||||||
"on": "\u0532\u0561\u0581\u0565\u056c"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "\u0553\u0561\u056f\u057e\u0561\u056e \u0567",
|
|
||||||
"on": "\u0532\u0561\u0581\u0565\u056c"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "\u0544\u0561\u0584\u0580\u0565\u056c",
|
|
||||||
"on": "\u0540\u0561\u0575\u057f\u0576\u0561\u0562\u0565\u0580\u057e\u0565\u056c \u0567"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "\u0546\u0578\u0580\u0574\u0561\u056c",
|
|
||||||
"on": "\u0539\u0565\u056a"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "\u056f\u0578\u0572\u057a\u057e\u0561\u056e",
|
|
||||||
"on": "\u0562\u0561\u0581\u0565\u056c \u0567"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "\u0549\u0578\u0580",
|
|
||||||
"on": "\u053d\u0578\u0576\u0561\u057e"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "\u0544\u0561\u0584\u0580\u0565\u056c",
|
|
||||||
"on": "\u0540\u0561\u0575\u057f\u0576\u0561\u0562\u0565\u0580\u057e\u0565\u056c \u0567"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "\u0544\u0561\u0584\u0580\u0565\u056c",
|
|
||||||
"on": "\u0540\u0561\u0575\u057f\u0576\u0561\u0562\u0565\u0580\u057e\u0565\u056c \u0567"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "\u0553\u0561\u056f\u057e\u0561\u056e",
|
|
||||||
"on": "\u0532\u0561\u0581"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "\u0540\u0565\u057c\u0578\u0582",
|
|
||||||
"on": "\u054f\u0578\u0582\u0576"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "\u053d\u0576\u0564\u056b\u0580"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "\u0531\u057a\u0561\u0570\u0578\u057e",
|
|
||||||
"on": "\u0531\u0576\u057e\u057f\u0561\u0576\u0563"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "\u0544\u0561\u0584\u0580\u0565\u056c",
|
|
||||||
"on": "\u0540\u0561\u0575\u057f\u0576\u0561\u0562\u0565\u0580\u057e\u0565\u056c \u0567"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "\u0544\u0561\u0584\u0580\u0565\u056c",
|
|
||||||
"on": "\u0540\u0561\u0575\u057f\u0576\u0561\u0562\u0565\u0580\u057e\u0565\u056c \u0567"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "\u0544\u0561\u0584\u0580\u0565\u056c",
|
|
||||||
"on": "\u0540\u0561\u0575\u057f\u0576\u0561\u0562\u0565\u0580\u057e\u0565\u056c \u0567"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "\u0553\u0561\u056f\u057e\u0561\u056e \u0567",
|
|
||||||
"on": "\u0532\u0561\u0581\u0565\u056c"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "\u0531\u0576\u057b\u0561\u057f\u057e\u0561\u056e",
|
|
||||||
"on": "\u0544\u056b\u0561\u0581\u0561\u056e"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "\u057a\u0561\u0580\u0561\u057a",
|
|
||||||
"recording": "\u0541\u0561\u0575\u0576\u0561\u0563\u0580\u0578\u0582\u0569\u0575\u0578\u0582\u0576\u0568",
|
|
||||||
"streaming": "\u0540\u0578\u057d\u0584"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "\u0531\u057e\u057f\u0578\u0574\u0561\u057f",
|
|
||||||
"cool": "\u0540\u0578\u057e\u0561\u0581\u0578\u0582\u0574",
|
|
||||||
"dry": "\u0549\u0578\u0580",
|
|
||||||
"fan_only": "\u0555\u0564\u0561\u0583\u0578\u056d\u056b\u0579",
|
|
||||||
"heat": "\u054b\u0565\u0580\u0574\u0578\u0582\u0569\u0575\u0578\u0582\u0576",
|
|
||||||
"heat_cool": "\u054b\u0565\u057c\u0578\u0582\u0581\u0578\u0582\u0574/\u0540\u0578\u057e\u0561\u0581\u0578\u0582\u0574",
|
|
||||||
"off": "\u0531\u0576\u057b\u0561\u057f\u057e\u0561\u056e"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "\u053f\u0561\u0580\u0563\u0561\u057e\u0578\u0580\u0565\u056c",
|
|
||||||
"configured": "\u053f\u0561\u0580\u0563\u0561\u057e\u0578\u0580\u057e\u0561\u056e"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "\u0553\u0561\u056f\u057e\u0561\u056e",
|
|
||||||
"closing": "\u0553\u0561\u056f\u0578\u0582\u0574",
|
|
||||||
"open": "\u0532\u0561\u0581",
|
|
||||||
"opening": "\u0532\u0561\u0581\u0578\u0582\u0574",
|
|
||||||
"stopped": "\u0534\u0561\u0564\u0561\u0580\u0565\u0581"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u0531\u0576\u057b\u0561\u057f\u0561\u056e",
|
|
||||||
"on": "\u0544\u056b\u0561\u0581\u057e\u0561\u056e",
|
|
||||||
"unavailable": "\u0531\u0576\u0570\u0561\u057d\u0561\u0576\u0565\u056c\u056b",
|
|
||||||
"unknown": "\u0570\u0561\u0575\u057f\u0576\u056b \u0579\u0567"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "\u054f\u0578\u0582\u0576",
|
|
||||||
"not_home": "\u0540\u0565\u057c\u0578\u0582"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "\u0531\u0576\u057b\u0561\u057f\u057e\u0561\u056e",
|
|
||||||
"on": "\u0544\u056b\u0561\u0581\u0561\u056e"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "\u0553\u0561\u056f\u057e\u0561\u056e",
|
|
||||||
"closing": "\u0553\u0561\u056f\u0578\u0582\u0574",
|
|
||||||
"home": "\u054f\u0578\u0582\u0576",
|
|
||||||
"locked": "\u056f\u0578\u0572\u057a\u057e\u0561\u056e \u0567",
|
|
||||||
"not_home": "\u0540\u0565\u057c\u0578\u0582",
|
|
||||||
"off": "\u0531\u0576\u057b\u0561\u057f\u057e\u0561\u056e",
|
|
||||||
"ok": "\u053c\u0561\u057e",
|
|
||||||
"on": "\u0544\u056b\u0561\u0581\u0561\u056e",
|
|
||||||
"open": "\u0532\u0561\u0581\u0565\u0584",
|
|
||||||
"opening": "\u0532\u0561\u0581\u0578\u0582\u0574",
|
|
||||||
"problem": "\u053d\u0576\u0564\u056b\u0580",
|
|
||||||
"stopped": "\u0534\u0561\u0564\u0561\u0580\u0565\u0581",
|
|
||||||
"unlocked": "\u0532\u0561\u0581\u0565\u056c \u0567"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "\u0531\u0576\u057b\u0561\u057f\u057e\u0561\u056e",
|
|
||||||
"on": "\u0544\u056b\u0561\u0581\u0561\u056e"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "\u054d\u0576\u057b\u0561\u057f\u057e\u0561\u056e",
|
|
||||||
"on": "\u0544\u056b\u0561\u0581\u0561\u056e"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "\u053f\u0578\u0572\u057a\u057e\u0561\u056e \u0567",
|
|
||||||
"unlocked": "\u0532\u0561\u0581 \u0567"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "\u054a\u0561\u0580\u0561\u057a",
|
|
||||||
"off": "\u0531\u0576\u057b\u0561\u057f\u0561\u056e",
|
|
||||||
"on": "\u0544\u056b\u0561\u0581\u0561\u056e",
|
|
||||||
"paused": "\u0534\u0561\u0564\u0561\u0580 \u0567",
|
|
||||||
"playing": "\u053d\u0561\u0572\u0578\u0582\u0574",
|
|
||||||
"standby": "\u054d\u057a\u0561\u057d\u0578\u0582\u0574"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "\u057f\u0578\u0582\u0576",
|
|
||||||
"not_home": "\u0540\u0565\u057c\u0578\u0582"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "\u053c\u0561\u057e",
|
|
||||||
"problem": "\u053d\u0576\u0564\u056b\u0580"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "\u0531\u0576\u057b\u0561\u057f\u057e\u0561\u056e",
|
|
||||||
"on": "\u0544\u056b\u0561\u0581\u0561\u056e"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "\u0553\u0578\u0580\u0561\u0563\u0580\u0578\u0582\u0569\u0575\u0578\u0582\u0576"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "\u0531\u0576\u057b\u0561\u057f\u057e\u0561\u056e",
|
|
||||||
"on": "\u0544\u056b\u0561\u0581\u0561\u056e"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "\u0531\u0576\u057b\u0561\u057f\u057e\u0561\u056e",
|
|
||||||
"on": "\u0574\u056b\u0561\u0581\u0561\u056e"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "\u0540\u0578\u0580\u056b\u0566\u0578\u0576\u056b \u057e\u0565\u0580\u0587\u0578\u0582\u0574",
|
|
||||||
"below_horizon": "\u0540\u0578\u0580\u056b\u0566\u0578\u0576\u056b \u0576\u0565\u0580\u0584\u0587\u0578\u0582\u0574"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "\u0561\u0576\u057b\u0561\u057f\u057e\u0561\u056e",
|
|
||||||
"on": "\u0574\u056b\u0561\u0581\u0561\u056e"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "\u0561\u056f\u057f\u056b\u057e",
|
|
||||||
"idle": "\u057a\u0561\u0580\u0561\u057a",
|
|
||||||
"paused": "\u0564\u0561\u0564\u0561\u0580 "
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "\u0544\u0561\u0584\u0580\u0578\u0582\u0574",
|
|
||||||
"docked": "\u053e\u0561\u056e\u056f\u057e\u0561\u056e",
|
|
||||||
"error": "\u054d\u056d\u0561\u056c",
|
|
||||||
"idle": "\u054a\u0561\u0580\u0561\u057a",
|
|
||||||
"off": "\u0561\u0576\u057b\u0561\u057f\u057e\u0561\u056e",
|
|
||||||
"on": "\u057e\u0580\u0561",
|
|
||||||
"paused": "\u0534\u0561\u0564\u0561\u0580 \u0567",
|
|
||||||
"returning": "\u054e\u0565\u0580\u0561\u0564\u0561\u057c\u0576\u0561\u056c\u0578\u057e \u0576\u0561\u057e\u0561\u0570\u0561\u0576\u0563\u056b\u057d\u057f"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "\u0544\u0561\u0584\u0580\u0565\u056c \u057d\u057f\u0578\u0582\u0563\u057e\u0561\u056e \u056b\u0580\u0565\u0580\u0568",
|
|
||||||
"cloudy": "\u0531\u0574\u057a\u0561\u0574\u0561\u056e",
|
|
||||||
"exceptional": "\u0532\u0561\u0581\u0561\u057c\u056b\u056f",
|
|
||||||
"fog": "\u0544\u0561\u057c\u0561\u056d\u0578\u0582\u0572",
|
|
||||||
"hail": "\u053f\u0561\u0580\u056f\u0578\u0582\u057f",
|
|
||||||
"lightning": "\u053f\u0561\u0575\u056e\u0561\u056f",
|
|
||||||
"lightning-rainy": "\u053f\u0561\u0575\u056e\u0561\u056f, \u0561\u0576\u0571\u0580\u0587",
|
|
||||||
"partlycloudy": "\u0544\u0561\u057d\u0561\u0574\u0562 \u0561\u0574\u057a\u0561\u0574\u0561\u056e",
|
|
||||||
"pouring": "\u053c\u0581\u0576\u0565\u056c",
|
|
||||||
"rainy": "\u0531\u0576\u0571\u0580\u0587\u0578\u057f",
|
|
||||||
"snowy": "\u0541\u0575\u0578\u0582\u0576\u0578\u057f \u0567",
|
|
||||||
"snowy-rainy": "\u0541\u0575\u0578\u0582\u0576\u0561\u057c\u0561\u057f, \u0561\u0576\u0571\u0580\u0587\u0578\u057f",
|
|
||||||
"sunny": "\u0531\u0580\u0587\u0578\u057f",
|
|
||||||
"windy": "\u053f\u0561\u0574",
|
|
||||||
"windy-variant": "\u0554\u0561\u0574\u0578\u057f"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "\u0544\u0565\u057c\u0561\u056e",
|
|
||||||
"initializing": "\u0546\u0561\u056d\u0561\u0571\u0565\u057c\u0576\u0578\u0572",
|
|
||||||
"ready": "\u054a\u0561\u057f\u0580\u0561\u057d\u057f \u0567",
|
|
||||||
"sleeping": "\u0554\u0576\u0565\u056c"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "\u0544\u0561\u0570\u0561\u0581\u0561\u056e{query_stage})",
|
|
||||||
"initializing": "\u0546\u0561\u056d\u0561\u0571\u0565\u057c\u0576\u0578\u0582\u0569\u0575\u0578\u0582\u0576({query_stage})"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Bersenjata",
|
|
||||||
"armed_away": "Armed away",
|
|
||||||
"armed_custom_bypass": "Armed custom bypass",
|
|
||||||
"armed_home": "Armed home",
|
|
||||||
"armed_night": "Armed night",
|
|
||||||
"arming": "Mempersenjatai",
|
|
||||||
"disarmed": "Dilucuti",
|
|
||||||
"disarming": "Melucuti",
|
|
||||||
"pending": "Tertunda",
|
|
||||||
"triggered": "Terpicu"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Off",
|
|
||||||
"on": "On"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Rendah"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Dingin"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Terputus",
|
|
||||||
"on": "Terhubung"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Off",
|
|
||||||
"on": "On"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Tertutup",
|
|
||||||
"on": "Terbuka"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Tertutup",
|
|
||||||
"on": "Terbuka"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Kosong",
|
|
||||||
"on": "Terdeteksi"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Panas"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Terkunci",
|
|
||||||
"on": "Terbuka"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Kering",
|
|
||||||
"on": "Basah"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Tidak ada",
|
|
||||||
"on": "Terdeteksi"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Tidak ada",
|
|
||||||
"on": "Terdeteksi"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Tertutup",
|
|
||||||
"on": "Terbuka"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Keluar",
|
|
||||||
"on": "Rumah"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "Oke",
|
|
||||||
"on": "Masalah"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Aman",
|
|
||||||
"on": "Tidak aman"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Tidak ada",
|
|
||||||
"on": "Terdeteksi"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Tidak ada",
|
|
||||||
"on": "Terdeteksi"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Tidak ada",
|
|
||||||
"on": "Terdeteksi"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Tertutup",
|
|
||||||
"on": "Terbuka"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Off",
|
|
||||||
"on": "On"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Siaga",
|
|
||||||
"recording": "Merekam",
|
|
||||||
"streaming": "Streaming"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Auto",
|
|
||||||
"cool": "Sejuk",
|
|
||||||
"dry": "Kering",
|
|
||||||
"fan_only": "Hanya kipas",
|
|
||||||
"heat": "Panas",
|
|
||||||
"heat_cool": "Panas/Dingin",
|
|
||||||
"off": "Off"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Konfigurasi",
|
|
||||||
"configured": "Terkonfigurasi"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Tertutup",
|
|
||||||
"closing": "Menutup",
|
|
||||||
"open": "Buka",
|
|
||||||
"opening": "Membuka",
|
|
||||||
"stopped": "Terhenti"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Off",
|
|
||||||
"on": "On",
|
|
||||||
"unavailable": "Tidak tersedia",
|
|
||||||
"unknown": "Tidak diketahui"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Rumah",
|
|
||||||
"not_home": "Keluar"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Off",
|
|
||||||
"on": "On"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Tertutup",
|
|
||||||
"closing": "Menutup",
|
|
||||||
"home": "Rumah",
|
|
||||||
"locked": "Terkunci",
|
|
||||||
"not_home": "Keluar",
|
|
||||||
"off": "Off",
|
|
||||||
"ok": "OK",
|
|
||||||
"on": "On",
|
|
||||||
"open": "Terbuka",
|
|
||||||
"opening": "Membuka",
|
|
||||||
"problem": "Masalah",
|
|
||||||
"stopped": "Tertutup",
|
|
||||||
"unlocked": "Terbuka"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Off",
|
|
||||||
"on": "On"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Off",
|
|
||||||
"on": "On"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Terkunci",
|
|
||||||
"unlocked": "Terbuka"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Diam",
|
|
||||||
"off": "Off",
|
|
||||||
"on": "On",
|
|
||||||
"paused": "Jeda",
|
|
||||||
"playing": "Memainkan",
|
|
||||||
"standby": "Siaga"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Di rumah",
|
|
||||||
"not_home": "Keluar"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "OK",
|
|
||||||
"problem": "Masalah"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Off",
|
|
||||||
"on": "On"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Scening"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Off",
|
|
||||||
"on": "On"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Off",
|
|
||||||
"on": "On"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Terbit",
|
|
||||||
"below_horizon": "Tenggelam"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Off",
|
|
||||||
"on": "On"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "Aktif",
|
|
||||||
"idle": "Siaga",
|
|
||||||
"paused": "Jeda"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Membersihkan",
|
|
||||||
"docked": "Berlabuh",
|
|
||||||
"error": "Kesalahan",
|
|
||||||
"idle": "Siaga",
|
|
||||||
"off": "Padam",
|
|
||||||
"on": "Nyala",
|
|
||||||
"paused": "Dijeda",
|
|
||||||
"returning": "Kembali ke dock"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Cerah, malam",
|
|
||||||
"cloudy": "Berawan",
|
|
||||||
"exceptional": "Luar biasa",
|
|
||||||
"fog": "Kabut",
|
|
||||||
"hail": "Hujan es",
|
|
||||||
"lightning": "Petir",
|
|
||||||
"lightning-rainy": "Petir, hujan",
|
|
||||||
"partlycloudy": "Sebagian berawan",
|
|
||||||
"pouring": "Hujan lebat",
|
|
||||||
"rainy": "Hujan",
|
|
||||||
"snowy": "Bersalju",
|
|
||||||
"snowy-rainy": "Bersalju, hujan",
|
|
||||||
"sunny": "Cerah",
|
|
||||||
"windy": "Berangin",
|
|
||||||
"windy-variant": "Berangin"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Mati",
|
|
||||||
"initializing": "Inisialisasi",
|
|
||||||
"ready": "Siap",
|
|
||||||
"sleeping": "Tidur"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Mati ({query_stage})",
|
|
||||||
"initializing": "Inisialisasi ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,246 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "\u00c1 ver\u00f0i",
|
|
||||||
"armed_away": "\u00c1 ver\u00f0i \u00fati",
|
|
||||||
"armed_home": "\u00c1 ver\u00f0i heima",
|
|
||||||
"armed_night": "\u00c1 ver\u00f0i n\u00f3tt",
|
|
||||||
"arming": "Set \u00e1 v\u00f6r\u00f0",
|
|
||||||
"disarmed": "ekki \u00e1 ver\u00f0i",
|
|
||||||
"disarming": "tek af ver\u00f0i",
|
|
||||||
"pending": "B\u00ed\u00f0ur",
|
|
||||||
"triggered": "R\u00e6st"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "\u00d3virk",
|
|
||||||
"on": "Virk"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Venjulegt",
|
|
||||||
"on": "L\u00e1gt"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Venjulegt",
|
|
||||||
"on": "Kalt"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Aftengdur",
|
|
||||||
"on": "Tengdur"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Sl\u00f6kkt",
|
|
||||||
"on": "Kveikt"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Loku\u00f0",
|
|
||||||
"on": "Opin"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Loku\u00f0",
|
|
||||||
"on": "Opin"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Hreinsa",
|
|
||||||
"on": "Uppg\u00f6tva\u00f0"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Venjulegt",
|
|
||||||
"on": "Heitt"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "L\u00e6st",
|
|
||||||
"on": "Afl\u00e6st"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "\u00deurrt",
|
|
||||||
"on": "Blautt"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Engin hreyfing",
|
|
||||||
"on": "Hreyfing"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Hreinsa",
|
|
||||||
"on": "Uppg\u00f6tva\u00f0"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Fjarverandi",
|
|
||||||
"on": "Heima"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "\u00cd lagi",
|
|
||||||
"on": "Vandam\u00e1l"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "\u00d6ruggt",
|
|
||||||
"on": "\u00d3\u00f6ruggt"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Hreinsa",
|
|
||||||
"on": "Uppg\u00f6tva\u00f0"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Hreinsa",
|
|
||||||
"on": "Uppg\u00f6tva\u00f0"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"on": "Uppg\u00f6tva\u00f0"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Loka",
|
|
||||||
"on": "Opna"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "\u00d3virkt",
|
|
||||||
"on": "Virkt"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "A\u00f0ger\u00f0alaus",
|
|
||||||
"recording": "\u00cd uppt\u00f6ku",
|
|
||||||
"streaming": "Streymi"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Sj\u00e1lfvirkt",
|
|
||||||
"cool": "K\u00e6ling",
|
|
||||||
"dry": "\u00deurrt",
|
|
||||||
"fan_only": "Vifta eing\u00f6ngu",
|
|
||||||
"heat": "Hitun",
|
|
||||||
"heat_cool": "Hita/K\u00e6la",
|
|
||||||
"off": "Sl\u00f6kkt"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Stilli",
|
|
||||||
"configured": "Stillt"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Loka\u00f0",
|
|
||||||
"closing": "Loka",
|
|
||||||
"open": "Opin",
|
|
||||||
"opening": "Opna",
|
|
||||||
"stopped": "St\u00f6\u00f0vu\u00f0"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Af",
|
|
||||||
"on": "\u00c1",
|
|
||||||
"unavailable": "Ekki tilt\u00e6kt",
|
|
||||||
"unknown": "\u00d3\u00feekkt"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Heima",
|
|
||||||
"not_home": "Fjarverandi"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Sl\u00f6kkt",
|
|
||||||
"on": "\u00cd gangi"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Loku\u00f0",
|
|
||||||
"closing": "Loka",
|
|
||||||
"home": "Heima",
|
|
||||||
"locked": "L\u00e6st",
|
|
||||||
"not_home": "Fjarverandi",
|
|
||||||
"off": "\u00d3virkur",
|
|
||||||
"ok": "\u00cd lagi",
|
|
||||||
"on": "Virkur",
|
|
||||||
"open": "Opin",
|
|
||||||
"opening": "Opna",
|
|
||||||
"problem": "Vandam\u00e1l",
|
|
||||||
"stopped": "St\u00f6\u00f0va\u00f0",
|
|
||||||
"unlocked": "Afl\u00e6st"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Af",
|
|
||||||
"on": "\u00c1"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Sl\u00f6kkt",
|
|
||||||
"on": "Kveikt"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "L\u00e6st",
|
|
||||||
"unlocked": "Afl\u00e6st"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "A\u00f0ger\u00f0alaus",
|
|
||||||
"off": "Sl\u00f6kkt",
|
|
||||||
"on": "\u00ed gangi",
|
|
||||||
"paused": "\u00cd bi\u00f0",
|
|
||||||
"playing": "Spila",
|
|
||||||
"standby": "Bi\u00f0sta\u00f0a"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Heima",
|
|
||||||
"not_home": "Fjarverandi"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "\u00cd lagi",
|
|
||||||
"problem": "Vandam\u00e1l"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "\u00d3virk",
|
|
||||||
"on": "Virk"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "\u00d3virkt",
|
|
||||||
"on": "Virkt"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Af",
|
|
||||||
"on": "\u00c1"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Yfir sj\u00f3ndeildarhring",
|
|
||||||
"below_horizon": "Undir sj\u00f3ndeildarhring"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Sl\u00f6kkt",
|
|
||||||
"on": "Kveikt"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "virkur",
|
|
||||||
"idle": "a\u00f0ger\u00f0alaus",
|
|
||||||
"paused": "\u00ed bi\u00f0"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "A\u00f0 ryksuga",
|
|
||||||
"docked": "\u00ed tengikv\u00ed",
|
|
||||||
"error": "Villa",
|
|
||||||
"idle": "A\u00f0ger\u00f0alaus",
|
|
||||||
"off": "Sl\u00f6kkt",
|
|
||||||
"on": "\u00cd gangi",
|
|
||||||
"paused": "\u00cd bi\u00f0",
|
|
||||||
"returning": "\u00c1 lei\u00f0 tilbaka \u00ed tengikv\u00ed"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Hei\u00f0sk\u00fdrt, n\u00f3tt",
|
|
||||||
"cloudy": "Sk\u00fdja\u00f0",
|
|
||||||
"exceptional": "Mj\u00f6g gott",
|
|
||||||
"fog": "\u00deoka",
|
|
||||||
"hail": "Hagl\u00e9l",
|
|
||||||
"lightning": "Eldingar",
|
|
||||||
"lightning-rainy": "Eldingar, rigning",
|
|
||||||
"partlycloudy": "A\u00f0 hluta til sk\u00fdja\u00f0",
|
|
||||||
"pouring": "\u00darhelli",
|
|
||||||
"rainy": "Rigning",
|
|
||||||
"snowy": "Snj\u00f3koma",
|
|
||||||
"snowy-rainy": "Slydda",
|
|
||||||
"sunny": "S\u00f3lskin",
|
|
||||||
"windy": "Vindasamt",
|
|
||||||
"windy-variant": "Vindasamt"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Dau\u00f0ur",
|
|
||||||
"initializing": "Frumstilli",
|
|
||||||
"ready": "Tilb\u00fainn",
|
|
||||||
"sleeping": "\u00cd dvala"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Dau\u00f0ur ({query_stage})",
|
|
||||||
"initializing": "Frumstilli ({query_stage})"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Attivo",
|
|
||||||
"armed_away": "Attivo fuori casa",
|
|
||||||
"armed_custom_bypass": "Attivo con bypass",
|
|
||||||
"armed_home": "Attivo in casa",
|
|
||||||
"armed_night": "Attivo Notte",
|
|
||||||
"arming": "In attivazione",
|
|
||||||
"disarmed": "Disattivo",
|
|
||||||
"disarming": "In disattivazione",
|
|
||||||
"pending": "In sospeso",
|
|
||||||
"triggered": "Attivato"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Spento",
|
|
||||||
"on": "Acceso"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normale",
|
|
||||||
"on": "Basso"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Normale",
|
|
||||||
"on": "Freddo"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Disconnesso",
|
|
||||||
"on": "Connesso"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Spento",
|
|
||||||
"on": "Acceso"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Chiusa",
|
|
||||||
"on": "Aperta"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Chiusa",
|
|
||||||
"on": "Aperta"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Assente",
|
|
||||||
"on": "Rilevato"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Normale",
|
|
||||||
"on": "Caldo"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Bloccato",
|
|
||||||
"on": "Sbloccato"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Asciutto",
|
|
||||||
"on": "Bagnato"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Assente",
|
|
||||||
"on": "Rilevato"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Vuoto",
|
|
||||||
"on": "Rilevato"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Chiuso",
|
|
||||||
"on": "Aperta"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Fuori casa",
|
|
||||||
"on": "A casa"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Problema"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Sicuro",
|
|
||||||
"on": "Non Sicuro"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Assente",
|
|
||||||
"on": "Rilevato"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Assente",
|
|
||||||
"on": "Rilevato"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Assente",
|
|
||||||
"on": "Rilevata"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Chiusa",
|
|
||||||
"on": "Aperta"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Disattivo",
|
|
||||||
"on": "Attivo"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Inattiva",
|
|
||||||
"recording": "In registrazione",
|
|
||||||
"streaming": "Streaming"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Auto",
|
|
||||||
"cool": "Freddo",
|
|
||||||
"dry": "Secco",
|
|
||||||
"fan_only": "Solo ventilatore",
|
|
||||||
"heat": "Caldo",
|
|
||||||
"heat_cool": "Caldo/Freddo",
|
|
||||||
"off": "Spento"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Configura",
|
|
||||||
"configured": "Configurato"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Chiuso",
|
|
||||||
"closing": "In chiusura",
|
|
||||||
"open": "Aperto",
|
|
||||||
"opening": "In apertura",
|
|
||||||
"stopped": "Arrestato"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Spento",
|
|
||||||
"on": "Acceso",
|
|
||||||
"unavailable": "Non disponibile",
|
|
||||||
"unknown": "Sconosciuto"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "A casa",
|
|
||||||
"not_home": "Fuori casa"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Spento",
|
|
||||||
"on": "Acceso"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Chiuso",
|
|
||||||
"closing": "Chiusura",
|
|
||||||
"home": "A casa",
|
|
||||||
"locked": "Bloccato",
|
|
||||||
"not_home": "Fuori casa",
|
|
||||||
"off": "Spento",
|
|
||||||
"ok": "OK",
|
|
||||||
"on": "Acceso",
|
|
||||||
"open": "Aperto",
|
|
||||||
"opening": "Apertura",
|
|
||||||
"problem": "Problema",
|
|
||||||
"stopped": "Fermato",
|
|
||||||
"unlocked": "Sbloccato"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Spento",
|
|
||||||
"on": "Acceso"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Spento",
|
|
||||||
"on": "Acceso"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Bloccato",
|
|
||||||
"unlocked": "Sbloccato"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Inattivo",
|
|
||||||
"off": "Spento",
|
|
||||||
"on": "Acceso",
|
|
||||||
"paused": "In pausa",
|
|
||||||
"playing": "In riproduzione",
|
|
||||||
"standby": "Pausa"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "A casa",
|
|
||||||
"not_home": "Fuori casa"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "OK",
|
|
||||||
"problem": "Problema"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Spento",
|
|
||||||
"on": "Acceso"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Sceneggiando"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Spento",
|
|
||||||
"on": "Acceso"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Spento",
|
|
||||||
"on": "Acceso"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Sopra l'orizzonte",
|
|
||||||
"below_horizon": "Sotto l'orizzonte"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Spento",
|
|
||||||
"on": "Acceso"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "attivo",
|
|
||||||
"idle": "inattivo",
|
|
||||||
"paused": "in pausa"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Pulendo",
|
|
||||||
"docked": "In base",
|
|
||||||
"error": "Errore",
|
|
||||||
"idle": "Inattivo",
|
|
||||||
"off": "Spento",
|
|
||||||
"on": "Acceso",
|
|
||||||
"paused": "In pausa",
|
|
||||||
"returning": "Ritorno alla base"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Sereno, notte",
|
|
||||||
"cloudy": "Nuvoloso",
|
|
||||||
"exceptional": "Eccezionale",
|
|
||||||
"fog": "Nebbia",
|
|
||||||
"hail": "Grandine",
|
|
||||||
"lightning": "Temporale",
|
|
||||||
"lightning-rainy": "Temporale, piovoso",
|
|
||||||
"partlycloudy": "Parzialmente nuvoloso",
|
|
||||||
"pouring": "Piogge intense",
|
|
||||||
"rainy": "Piovoso",
|
|
||||||
"snowy": "Nevoso",
|
|
||||||
"snowy-rainy": "Nevoso, piovoso",
|
|
||||||
"sunny": "Soleggiato",
|
|
||||||
"windy": "Ventoso",
|
|
||||||
"windy-variant": "Ventoso"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Disattivo",
|
|
||||||
"initializing": "Avvio",
|
|
||||||
"ready": "Pronto",
|
|
||||||
"sleeping": "In attesa"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Disattivo ({query_stage})",
|
|
||||||
"initializing": "Avvio ({query_stage})"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,207 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"triggered": "\u30c8\u30ea\u30ac\u30fc"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "\u30aa\u30d5",
|
|
||||||
"on": "\u30aa\u30f3"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "\u901a\u5e38",
|
|
||||||
"on": "\u4f4e"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "\u901a\u5e38",
|
|
||||||
"on": "\u4f4e\u6e29"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "\u5207\u65ad",
|
|
||||||
"on": "\u63a5\u7d9a\u6e08"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u30aa\u30d5",
|
|
||||||
"on": "\u30aa\u30f3"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "\u9589\u9396",
|
|
||||||
"on": "\u958b\u653e"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "\u9589\u9396",
|
|
||||||
"on": "\u958b\u653e"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "\u672a\u691c\u51fa",
|
|
||||||
"on": "\u691c\u51fa"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "\u6b63\u5e38",
|
|
||||||
"on": "\u9ad8\u6e29"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "\u30ed\u30c3\u30af\u3055\u308c\u307e\u3057\u305f",
|
|
||||||
"on": "\u30ed\u30c3\u30af\u3055\u308c\u3066\u3044\u307e\u305b\u3093"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "\u30c9\u30e9\u30a4",
|
|
||||||
"on": "\u30a6\u30a7\u30c3\u30c8"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "\u672a\u691c\u51fa",
|
|
||||||
"on": "\u691c\u51fa"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "\u672a\u691c\u51fa",
|
|
||||||
"on": "\u691c\u51fa"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "\u9589\u9396",
|
|
||||||
"on": "\u958b\u653e"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "\u5916\u51fa",
|
|
||||||
"on": "\u5728\u5b85"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "\u5b89\u5168",
|
|
||||||
"on": "\u5371\u967a"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "\u672a\u691c\u51fa",
|
|
||||||
"on": "\u691c\u51fa"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "\u672a\u691c\u51fa",
|
|
||||||
"on": "\u691c\u51fa"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "\u672a\u691c\u51fa",
|
|
||||||
"on": "\u691c\u51fa"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "\u9589\u9396",
|
|
||||||
"on": "\u958b\u653e"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "\u30aa\u30d5",
|
|
||||||
"on": "\u30aa\u30f3"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "\u30a2\u30a4\u30c9\u30eb"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "\u30aa\u30fc\u30c8",
|
|
||||||
"cool": "\u51b7\u623f",
|
|
||||||
"dry": "\u30c9\u30e9\u30a4",
|
|
||||||
"fan_only": "\u30d5\u30a1\u30f3\u306e\u307f",
|
|
||||||
"heat": "\u6696\u623f",
|
|
||||||
"off": "\u30aa\u30d5"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "\u8a2d\u5b9a",
|
|
||||||
"configured": "\u8a2d\u5b9a\u6e08\u307f"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "\u9589\u9396",
|
|
||||||
"opening": "\u6249"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\u30aa\u30d5",
|
|
||||||
"on": "\u30aa\u30f3",
|
|
||||||
"unavailable": "\u5229\u7528\u4e0d\u53ef",
|
|
||||||
"unknown": "\u4e0d\u660e"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "\u5728\u5b85",
|
|
||||||
"not_home": "\u5916\u51fa"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "\u30aa\u30d5",
|
|
||||||
"on": "\u30aa\u30f3"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "\u9589\u9396",
|
|
||||||
"home": "\u5728\u5b85",
|
|
||||||
"locked": "\u30ed\u30c3\u30af\u3055\u308c\u307e\u3057\u305f",
|
|
||||||
"not_home": "\u5916\u51fa",
|
|
||||||
"off": "\u30aa\u30d5",
|
|
||||||
"ok": "OK",
|
|
||||||
"on": "\u30aa\u30f3",
|
|
||||||
"opening": "\u6249"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "\u30aa\u30d5",
|
|
||||||
"on": "\u30aa\u30f3"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "\u30aa\u30d5",
|
|
||||||
"on": "\u30aa\u30f3"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "\u30a2\u30a4\u30c9\u30eb",
|
|
||||||
"off": "\u30aa\u30d5",
|
|
||||||
"on": "\u30aa\u30f3",
|
|
||||||
"paused": "\u4e00\u6642\u505c\u6b62",
|
|
||||||
"playing": "\u518d\u751f\u4e2d"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "\u5728\u5b85",
|
|
||||||
"not_home": "\u5916\u51fa"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "OK"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "\u30aa\u30d5",
|
|
||||||
"on": "\u30aa\u30f3"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "\u30aa\u30d5",
|
|
||||||
"on": "\u30aa\u30f3"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "\u30aa\u30d5",
|
|
||||||
"on": "\u30aa\u30f3"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "\u5730\u5e73\u7dda\u306e\u4e0a",
|
|
||||||
"below_horizon": "\u5730\u5e73\u7dda\u3088\u308a\u4e0b"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "\u30aa\u30d5",
|
|
||||||
"on": "\u30aa\u30f3"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "\u6674\u308c\u305f\u591c",
|
|
||||||
"cloudy": "\u66c7\u308a",
|
|
||||||
"fog": "\u9727",
|
|
||||||
"hail": "\u96f9",
|
|
||||||
"lightning": "\u96f7",
|
|
||||||
"lightning-rainy": "\u96f7\u96e8",
|
|
||||||
"partlycloudy": "\u6674\u308c\u6642\u3005\u66c7\u308a",
|
|
||||||
"pouring": "\u5927\u96e8",
|
|
||||||
"rainy": "\u96e8",
|
|
||||||
"snowy": "\u96ea",
|
|
||||||
"snowy-rainy": "\u307f\u305e\u308c",
|
|
||||||
"sunny": "\u6674\u308c",
|
|
||||||
"windy": "\u5f37\u98a8"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"initializing": "\u521d\u671f\u5316\u4e2d",
|
|
||||||
"ready": "\u6e96\u5099\u5b8c\u4e86",
|
|
||||||
"sleeping": "\u30b9\u30ea\u30fc\u30d7"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": " ({query_stage})",
|
|
||||||
"initializing": "\u521d\u671f\u5316\u4e2d ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "\uacbd\ube44\uc911",
|
|
||||||
"armed_away": "\uacbd\ube44\uc911(\uc678\ucd9c)",
|
|
||||||
"armed_custom_bypass": "\uacbd\ube44\uc911(\uc0ac\uc6a9\uc790 \uc6b0\ud68c)",
|
|
||||||
"armed_home": "\uacbd\ube44\uc911(\uc7ac\uc2e4)",
|
|
||||||
"armed_night": "\uacbd\ube44\uc911(\uc57c\uac04)",
|
|
||||||
"arming": "\uacbd\ube44\uc911",
|
|
||||||
"disarmed": "\ud574\uc81c\ub428",
|
|
||||||
"disarming": "\ud574\uc81c\uc911",
|
|
||||||
"pending": "\ubcf4\ub958\uc911",
|
|
||||||
"triggered": "\uc791\ub3d9\ub428"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "\uaebc\uc9d0",
|
|
||||||
"on": "\ucf1c\uc9d0"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "\ubcf4\ud1b5",
|
|
||||||
"on": "\ub0ae\uc74c"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "\ubcf4\ud1b5",
|
|
||||||
"on": "\uc800\uc628"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "\uc5f0\uacb0\ud574\uc81c\ub428",
|
|
||||||
"on": "\uc5f0\uacb0\ub428"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\uaebc\uc9d0",
|
|
||||||
"on": "\ucf1c\uc9d0"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "\ub2eb\ud798",
|
|
||||||
"on": "\uc5f4\ub9bc"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "\ub2eb\ud798",
|
|
||||||
"on": "\uc5f4\ub9bc"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "\uc774\uc0c1\uc5c6\uc74c",
|
|
||||||
"on": "\uac10\uc9c0\ub428"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "\ubcf4\ud1b5",
|
|
||||||
"on": "\uace0\uc628"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "\uc7a0\uae40",
|
|
||||||
"on": "\ud574\uc81c"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "\uac74\uc870\ud568",
|
|
||||||
"on": "\uc2b5\ud568"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "\uc774\uc0c1\uc5c6\uc74c",
|
|
||||||
"on": "\uac10\uc9c0\ub428"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "\uc774\uc0c1\uc5c6\uc74c",
|
|
||||||
"on": "\uac10\uc9c0\ub428"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "\ub2eb\ud798",
|
|
||||||
"on": "\uc5f4\ub9bc"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "\uc678\ucd9c",
|
|
||||||
"on": "\uc7ac\uc2e4"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "\ubb38\uc81c\uc5c6\uc74c",
|
|
||||||
"on": "\ubb38\uc81c\uc788\uc74c"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "\uc548\uc804",
|
|
||||||
"on": "\uc704\ud5d8"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "\uc774\uc0c1\uc5c6\uc74c",
|
|
||||||
"on": "\uac10\uc9c0\ub428"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "\uc774\uc0c1\uc5c6\uc74c",
|
|
||||||
"on": "\uac10\uc9c0\ub428"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "\uc774\uc0c1\uc5c6\uc74c",
|
|
||||||
"on": "\uac10\uc9c0\ub428"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "\ub2eb\ud798",
|
|
||||||
"on": "\uc5f4\ub9bc"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "\uaebc\uc9d0",
|
|
||||||
"on": "\ucf1c\uc9d0"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "\ub300\uae30\uc911",
|
|
||||||
"recording": "\ub179\ud654\uc911",
|
|
||||||
"streaming": "\uc2a4\ud2b8\ub9ac\ubc0d"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "\uc790\ub3d9",
|
|
||||||
"cool": "\ub0c9\ubc29",
|
|
||||||
"dry": "\uc81c\uc2b5",
|
|
||||||
"fan_only": "\uc1a1\ud48d",
|
|
||||||
"heat": "\ub09c\ubc29",
|
|
||||||
"heat_cool": "\ub0c9\ub09c\ubc29",
|
|
||||||
"off": "\uaebc\uc9d0"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "\uc124\uc815",
|
|
||||||
"configured": "\uc124\uc815\ub428"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "\ub2eb\ud798",
|
|
||||||
"closing": "\ub2eb\ub294\uc911",
|
|
||||||
"open": "\uc5f4\ub9bc",
|
|
||||||
"opening": "\uc5ec\ub294\uc911",
|
|
||||||
"stopped": "\uba48\ucda4"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "\uaebc\uc9d0",
|
|
||||||
"on": "\ucf1c\uc9d0",
|
|
||||||
"unavailable": "\uc0ac\uc6a9\ubd88\uac00",
|
|
||||||
"unknown": "\uc54c\uc218\uc5c6\uc74c"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "\uc7ac\uc2e4",
|
|
||||||
"not_home": "\uc678\ucd9c"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "\uaebc\uc9d0",
|
|
||||||
"on": "\ucf1c\uc9d0"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "\ub2eb\ud798",
|
|
||||||
"closing": "\ub2eb\ub294\uc911",
|
|
||||||
"home": "\uc7ac\uc2e4",
|
|
||||||
"locked": "\uc7a0\uae40",
|
|
||||||
"not_home": "\uc678\ucd9c",
|
|
||||||
"off": "\uaebc\uc9d0",
|
|
||||||
"ok": "\ubb38\uc81c\uc5c6\uc74c",
|
|
||||||
"on": "\ucf1c\uc9d0",
|
|
||||||
"open": "\uc5f4\ub9bc",
|
|
||||||
"opening": "\uc5ec\ub294\uc911",
|
|
||||||
"problem": "\ubb38\uc81c\uc788\uc74c",
|
|
||||||
"stopped": "\uba48\ucda4",
|
|
||||||
"unlocked": "\ud574\uc81c"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "\uaebc\uc9d0",
|
|
||||||
"on": "\ucf1c\uc9d0"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "\uaebc\uc9d0",
|
|
||||||
"on": "\ucf1c\uc9d0"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "\uc7a0\uae40",
|
|
||||||
"unlocked": "\ud574\uc81c"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "\ub300\uae30\uc911",
|
|
||||||
"off": "\uaebc\uc9d0",
|
|
||||||
"on": "\ucf1c\uc9d0",
|
|
||||||
"paused": "\uc77c\uc2dc\uc911\uc9c0",
|
|
||||||
"playing": "\uc7ac\uc0dd\uc911",
|
|
||||||
"standby": "\uc900\ube44\uc911"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "\uc7ac\uc2e4",
|
|
||||||
"not_home": "\uc678\ucd9c"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "\ubb38\uc81c\uc5c6\uc74c",
|
|
||||||
"problem": "\ubb38\uc81c\uc788\uc74c"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "\uaebc\uc9d0",
|
|
||||||
"on": "\ucf1c\uc9d0"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "\uc52c \uad6c\uc131\uc911"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "\uaebc\uc9d0",
|
|
||||||
"on": "\ucf1c\uc9d0"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "\uaebc\uc9d0",
|
|
||||||
"on": "\ucf1c\uc9d0"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "\uc8fc\uac04",
|
|
||||||
"below_horizon": "\uc57c\uac04"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "\uaebc\uc9d0",
|
|
||||||
"on": "\ucf1c\uc9d0"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "\ud65c\uc131\ud654",
|
|
||||||
"idle": "\ub300\uae30\uc911",
|
|
||||||
"paused": "\uc77c\uc2dc\uc911\uc9c0\ub428"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "\uccad\uc18c\uc911",
|
|
||||||
"docked": "\ucda9\uc804\uc911",
|
|
||||||
"error": "\uc791\ub3d9 \uc624\ub958",
|
|
||||||
"idle": "\ub300\uae30\uc911",
|
|
||||||
"off": "\uaebc\uc9d0",
|
|
||||||
"on": "\ucf1c\uc9d0",
|
|
||||||
"paused": "\uc77c\uc2dc\uc911\uc9c0\ub428",
|
|
||||||
"returning": "\ucda9\uc804 \ubcf5\uadc0 \uc911"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "\ub9d1\uc74c (\ubc24)",
|
|
||||||
"cloudy": "\ud750\ub9bc",
|
|
||||||
"exceptional": "\uc608\uc678\uc0ac\ud56d",
|
|
||||||
"fog": "\uc548\uac1c",
|
|
||||||
"hail": "\uc6b0\ubc15",
|
|
||||||
"lightning": "\ubc88\uac1c",
|
|
||||||
"lightning-rainy": "\ub1cc\uc6b0",
|
|
||||||
"partlycloudy": "\ub300\uccb4\ub85c \ud750\ub9bc",
|
|
||||||
"pouring": "\ud638\uc6b0",
|
|
||||||
"rainy": "\ube44",
|
|
||||||
"snowy": "\ub208",
|
|
||||||
"snowy-rainy": "\uc9c4\ub208\uac1c\ube44",
|
|
||||||
"sunny": "\ub9d1\uc74c",
|
|
||||||
"windy": "\ubc14\ub78c",
|
|
||||||
"windy-variant": "\ubc14\ub78c"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "\uc751\ub2f5\uc5c6\uc74c",
|
|
||||||
"initializing": "\ucd08\uae30\ud654\uc911",
|
|
||||||
"ready": "\uc900\ube44",
|
|
||||||
"sleeping": "\uc808\uc804\ubaa8\ub4dc"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "\uc751\ub2f5\uc5c6\uc74c ({query_stage})",
|
|
||||||
"initializing": "\ucd08\uae30\ud654\uc911 ({query_stage})"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Aktiv\u00e9iert",
|
|
||||||
"armed_away": "Aktiv\u00e9iert \u00cbnnerwee",
|
|
||||||
"armed_custom_bypass": "Aktiv, Benotzerdefin\u00e9iert",
|
|
||||||
"armed_home": "Aktiv\u00e9iert Doheem",
|
|
||||||
"armed_night": "Aktiv\u00e9iert Nuecht",
|
|
||||||
"arming": "Aktiv\u00e9ieren",
|
|
||||||
"disarmed": "Desaktiv\u00e9iert",
|
|
||||||
"disarming": "Desaktiv\u00e9ieren",
|
|
||||||
"pending": "Ustoend",
|
|
||||||
"triggered": "Ausgel\u00e9ist"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "Un"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Niddreg"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Kal"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Net Verbonnen",
|
|
||||||
"on": "Verbonnen"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "Un"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Zou",
|
|
||||||
"on": "Op"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Zou",
|
|
||||||
"on": "Op"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Kloer",
|
|
||||||
"on": "Detekt\u00e9iert"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Waarm"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Gespaart",
|
|
||||||
"on": "Net gespaart"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Dr\u00e9chen",
|
|
||||||
"on": "Naass"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Roueg",
|
|
||||||
"on": "Detekt\u00e9iert"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Roueg",
|
|
||||||
"on": "Detekt\u00e9iert"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Zou",
|
|
||||||
"on": "Op"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "\u00cbnnerwee",
|
|
||||||
"on": "Doheem"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Problem"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "S\u00e9cher",
|
|
||||||
"on": "Ons\u00e9cher"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Kloer",
|
|
||||||
"on": "Detekt\u00e9iert"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Roueg",
|
|
||||||
"on": "Detekt\u00e9iert"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Kloer",
|
|
||||||
"on": "Detekt\u00e9iert"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Zou",
|
|
||||||
"on": "Op"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "Un"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Roueg",
|
|
||||||
"recording": "H\u00eblt Op",
|
|
||||||
"streaming": "Streamt"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Auto",
|
|
||||||
"cool": "Kill",
|
|
||||||
"dry": "Dr\u00e9chen",
|
|
||||||
"fan_only": "N\u00ebmme Ventilator",
|
|
||||||
"heat": "Heizen",
|
|
||||||
"heat_cool": "H\u00ebtzen/Ofkillen",
|
|
||||||
"off": "Aus"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Astellen",
|
|
||||||
"configured": "Agestallt"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Zou",
|
|
||||||
"closing": "G\u00ebtt zougemaach",
|
|
||||||
"open": "Op",
|
|
||||||
"opening": "G\u00ebtt opgemaach",
|
|
||||||
"stopped": "Gestoppt"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "Un",
|
|
||||||
"unavailable": "Net erreechbar",
|
|
||||||
"unknown": "Onbekannt"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Doheem",
|
|
||||||
"not_home": "\u00cbnnerwee"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "Un"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Zou",
|
|
||||||
"closing": "G\u00ebtt zougemaach",
|
|
||||||
"home": "Doheem",
|
|
||||||
"locked": "Gespaart",
|
|
||||||
"not_home": "\u00cbnnerwee",
|
|
||||||
"off": "Aus",
|
|
||||||
"ok": "OK",
|
|
||||||
"on": "Un",
|
|
||||||
"open": "Op",
|
|
||||||
"opening": "G\u00ebtt opgemaach",
|
|
||||||
"problem": "Problem",
|
|
||||||
"stopped": "Gestoppt",
|
|
||||||
"unlocked": "Net gespaart"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "Un"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "Un"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Gespaart",
|
|
||||||
"unlocked": "Net gespaart"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Waart",
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "Un",
|
|
||||||
"paused": "Pauseiert",
|
|
||||||
"playing": "Spillt",
|
|
||||||
"standby": "Standby"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Doheem",
|
|
||||||
"not_home": "\u00cbnnerwee"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "OK",
|
|
||||||
"problem": "Problem"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "Un"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Zeen"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "Un"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "Un"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Iwwert dem Horizont",
|
|
||||||
"below_horizon": "\u00cbnnert dem Horizont"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "Un"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "Aktiv",
|
|
||||||
"idle": "Waart",
|
|
||||||
"paused": "Pauseiert"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Botzt",
|
|
||||||
"docked": "Agedockt",
|
|
||||||
"error": "Feeler",
|
|
||||||
"idle": "Waart",
|
|
||||||
"off": "Aus",
|
|
||||||
"on": "Un",
|
|
||||||
"paused": "Pauseiert",
|
|
||||||
"returning": "K\u00ebnnt zur Statioun zer\u00e9ck"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Kloer, Nuecht",
|
|
||||||
"cloudy": "Wollekeg",
|
|
||||||
"exceptional": "Aussergew\u00e9inlech",
|
|
||||||
"fog": "Niwwel",
|
|
||||||
"hail": "Kn\u00ebppelsteng",
|
|
||||||
"lightning": "Bl\u00ebtz",
|
|
||||||
"lightning-rainy": "Bl\u00ebtz, Reen",
|
|
||||||
"partlycloudy": "Liicht wollekeg",
|
|
||||||
"pouring": "Schloreen",
|
|
||||||
"rainy": "Reen",
|
|
||||||
"snowy": "Schn\u00e9i",
|
|
||||||
"snowy-rainy": "Schn\u00e9i, Reen",
|
|
||||||
"sunny": "Sonneg",
|
|
||||||
"windy": "L\u00ebfteg",
|
|
||||||
"windy-variant": "L\u00ebfteg"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Net Ereechbar",
|
|
||||||
"initializing": "Initialis\u00e9iert",
|
|
||||||
"ready": "Bereet",
|
|
||||||
"sleeping": "Schl\u00e9ift"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Net Ereechbar ({query_stage})",
|
|
||||||
"initializing": "Initialis\u00e9iert ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,138 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "U\u017erakinta",
|
|
||||||
"armed_home": "Nam\u0173 apsauga \u012fjungta",
|
|
||||||
"arming": "Saugojimo re\u017eimo \u012fjungimas",
|
|
||||||
"disarmed": "Atrakinta",
|
|
||||||
"disarming": "Saugojimo re\u017eimo i\u0161jungimas",
|
|
||||||
"pending": "Laukiama",
|
|
||||||
"triggered": "Aktyvinta"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "I\u0161jungta",
|
|
||||||
"on": "\u012ejungta"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Atsijung\u0119s",
|
|
||||||
"on": "Prisijung\u0119s"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "I\u0161jungta",
|
|
||||||
"on": "\u012ejungta"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "U\u017edaryta",
|
|
||||||
"on": "Atidaryta"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "U\u017edaryta",
|
|
||||||
"on": "Atidaryta"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Neaptikta",
|
|
||||||
"on": "Aptikta"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Sausa",
|
|
||||||
"on": "\u0160lapia"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Nejuda",
|
|
||||||
"on": "Aptiktas judesys"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Laisva",
|
|
||||||
"on": "U\u017eimta"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "U\u017edaryta",
|
|
||||||
"on": "Atidaryta"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Saugu",
|
|
||||||
"on": "Nesaugu"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Neaptikta",
|
|
||||||
"on": "Aptikta"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Tylu",
|
|
||||||
"on": "Aptikta"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Neaptikta",
|
|
||||||
"on": "Aptikta"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "U\u017edaryta",
|
|
||||||
"on": "Atidaryta"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "I\u0161jungta",
|
|
||||||
"on": "\u012ejungta"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Laukimo re\u017eimas",
|
|
||||||
"recording": "\u012era\u0161ymas",
|
|
||||||
"streaming": "Transliuojama"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"off": "I\u0161jungta"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "I\u0161jungta",
|
|
||||||
"on": "\u012ejungta",
|
|
||||||
"unavailable": "(nepasiekiamas)",
|
|
||||||
"unknown": "Ne\u017einoma"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "I\u0161jungta",
|
|
||||||
"on": "\u012ejungta"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"off": "I\u0161jungta",
|
|
||||||
"ok": "Ok",
|
|
||||||
"on": "\u012ejungta"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"on": "\u012ejungta"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"on": "\u012ejungta"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Namuose",
|
|
||||||
"not_home": "I\u0161vyk\u0119s"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "I\u0161jungta",
|
|
||||||
"on": "\u012ejungta"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "I\u0161jungta",
|
|
||||||
"on": "\u012ejungta"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "I\u0161jungta",
|
|
||||||
"on": "\u012ejungta"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "I\u0161jungta",
|
|
||||||
"on": "\u012ejungta"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "aktyvus",
|
|
||||||
"paused": "pristabdytas"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"query_stage": {
|
|
||||||
"dead": " ({query_stage})",
|
|
||||||
"initializing": " ( {query_stage} )"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Piesl\u0113gta",
|
|
||||||
"armed_away": "Piesl\u0113gta uz promb\u016btni",
|
|
||||||
"armed_custom_bypass": "Piesl\u0113gts piel\u0101gots apvedce\u013c\u0161",
|
|
||||||
"armed_home": "Piesl\u0113gta m\u0101j\u0101s",
|
|
||||||
"armed_night": "Piesl\u0113gta uz nakti",
|
|
||||||
"arming": "Piesl\u0113dzas",
|
|
||||||
"disarmed": "Atsl\u0113gta",
|
|
||||||
"disarming": "Atsl\u0113dzas",
|
|
||||||
"pending": "Gaida",
|
|
||||||
"triggered": "Aktiviz\u0113ta"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Izsl\u0113gts",
|
|
||||||
"on": "Iesl\u0113gts"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Norm\u0101ls",
|
|
||||||
"on": "Zems"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "Norm\u0101ls",
|
|
||||||
"on": "Auksts"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Atvienots",
|
|
||||||
"on": "Piesl\u0113dzies"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Izsl\u0113gts",
|
|
||||||
"on": "Iesl\u0113gts"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Aizv\u0113rtas",
|
|
||||||
"on": "Atv\u0113rtas"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Aizv\u0113rtas",
|
|
||||||
"on": "Atv\u0113rtas"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Br\u012bvs",
|
|
||||||
"on": "Sajusta"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Norm\u0101ls",
|
|
||||||
"on": "Karsts"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "Sl\u0113gts",
|
|
||||||
"on": "Atsl\u0113gts"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "Sauss",
|
|
||||||
"on": "Slapj\u0161"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Br\u012bvs",
|
|
||||||
"on": "Sajusta"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Br\u012bvs",
|
|
||||||
"on": "Aiz\u0146emts"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Aizv\u0113rts",
|
|
||||||
"on": "Atv\u0113rts"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Promb\u016btne",
|
|
||||||
"on": "M\u0101j\u0101s"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "OK",
|
|
||||||
"on": "Probl\u0113ma"
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Dro\u0161i",
|
|
||||||
"on": "Nedro\u0161i"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Br\u012bvs",
|
|
||||||
"on": "Sajusta"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Br\u012bvs",
|
|
||||||
"on": "Sajusts"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Br\u012bvs",
|
|
||||||
"on": "Sajusts"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Aizv\u0113rts",
|
|
||||||
"on": "Atv\u0113rts"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Izsl\u0113gts",
|
|
||||||
"on": "Iesl\u0113gts"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "D\u012bkst\u0101ve",
|
|
||||||
"recording": "Ieraksta",
|
|
||||||
"streaming": "Straum\u0113"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Auto",
|
|
||||||
"cool": "Dzes\u0113\u0161ana",
|
|
||||||
"dry": "Sauss",
|
|
||||||
"fan_only": "Tikai ventilators",
|
|
||||||
"heat": "Sild\u012b\u0161ana",
|
|
||||||
"heat_cool": "Sild\u012bt / Atdzes\u0113t",
|
|
||||||
"off": "Izsl\u0113gts"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Konfigur\u0113t",
|
|
||||||
"configured": "Konfigur\u0113ts"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Sl\u0113gts",
|
|
||||||
"closing": "Sl\u0113dzas",
|
|
||||||
"open": "Atv\u0113rts",
|
|
||||||
"opening": "Atveras",
|
|
||||||
"stopped": "Aptur\u0113ts"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Izsl\u0113gts",
|
|
||||||
"on": "Iesl\u0113gts",
|
|
||||||
"unavailable": "Nepieejams",
|
|
||||||
"unknown": "Nezin\u0101ms"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "M\u0101j\u0101s",
|
|
||||||
"not_home": "Prom"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Izsl\u0113gts",
|
|
||||||
"on": "Iesl\u0113gts"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Sl\u0113gta",
|
|
||||||
"closing": "Sl\u0113dzas",
|
|
||||||
"home": "M\u0101j\u0101s",
|
|
||||||
"locked": "Blo\u0137\u0113ta",
|
|
||||||
"not_home": "Promb\u016btn\u0113",
|
|
||||||
"off": "Izsl\u0113gta",
|
|
||||||
"ok": "OK",
|
|
||||||
"on": "Iesl\u0113gta",
|
|
||||||
"open": "Atv\u0113rta",
|
|
||||||
"opening": "Atveras",
|
|
||||||
"problem": "Probl\u0113ma",
|
|
||||||
"stopped": "Aptur\u0113ta",
|
|
||||||
"unlocked": "Atblo\u0137\u0113ta"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Izsl\u0113gta",
|
|
||||||
"on": "Iesl\u0113gta"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Izsl\u0113gta",
|
|
||||||
"on": "Iesl\u0113gta"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "Aizsl\u0113gts",
|
|
||||||
"unlocked": "Atsl\u0113gts"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "D\u012bkst\u0101v\u0113",
|
|
||||||
"off": "Izsl\u0113gts",
|
|
||||||
"on": "Iesl\u0113gts",
|
|
||||||
"paused": "Aptur\u0113ts",
|
|
||||||
"playing": "Atska\u0146o",
|
|
||||||
"standby": "Gaid\u012b\u0161anas re\u017e\u012bm\u0101"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "M\u0101j\u0101s",
|
|
||||||
"not_home": "Promb\u016btne"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "Labi",
|
|
||||||
"problem": "Probl\u0113ma"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Izsl\u0113gta",
|
|
||||||
"on": "Iesl\u0113gts"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Ainas rad\u012b\u0161ana"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Izsl\u0113gts",
|
|
||||||
"on": "Iesl\u0113gts"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Izsl\u0113gts",
|
|
||||||
"on": "Iesl\u0113gts"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Virs horizonta",
|
|
||||||
"below_horizon": "Zem horizonta"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Izsl\u0113gts",
|
|
||||||
"on": "Iesl\u0113gts"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "akt\u012bvs",
|
|
||||||
"idle": "d\u012bkst\u0101ve",
|
|
||||||
"paused": "aptur\u0113ts"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Notiek uzkop\u0161ana",
|
|
||||||
"docked": "Pie doka",
|
|
||||||
"error": "K\u013c\u016bda",
|
|
||||||
"idle": "D\u012bkst\u0101v\u0113",
|
|
||||||
"off": "Izsl\u0113gts",
|
|
||||||
"on": "Iesl\u0113gts",
|
|
||||||
"paused": "Aptur\u0113ts",
|
|
||||||
"returning": "Ce\u013c\u0101 pie doka"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Skaidrs, nakts",
|
|
||||||
"cloudy": "M\u0101ko\u0146ains",
|
|
||||||
"exceptional": "Iz\u0146\u0113muma k\u0101rt\u0101",
|
|
||||||
"fog": "Migla",
|
|
||||||
"hail": "Krusa",
|
|
||||||
"lightning": "Zibens",
|
|
||||||
"lightning-rainy": "Zibens, lietus",
|
|
||||||
"partlycloudy": "Da\u013c\u0113ji apm\u0101cies",
|
|
||||||
"pouring": "Lietusg\u0101ze",
|
|
||||||
"rainy": "Lietains",
|
|
||||||
"snowy": "Sniegs",
|
|
||||||
"snowy-rainy": "Sniegs, lietus",
|
|
||||||
"sunny": "Saulains",
|
|
||||||
"windy": "V\u0113jains",
|
|
||||||
"windy-variant": "V\u0113jains"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "Beigta",
|
|
||||||
"initializing": "Inicializ\u0113",
|
|
||||||
"ready": "Gatavs",
|
|
||||||
"sleeping": "Gu\u013c"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "Beigta ({query_stage})",
|
|
||||||
"initializing": "Inicializ\u0113 ({query_stage})"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,255 +0,0 @@
|
|||||||
{
|
|
||||||
"state": {
|
|
||||||
"alarm_control_panel": {
|
|
||||||
"armed": "Armert",
|
|
||||||
"armed_away": "Armert borte",
|
|
||||||
"armed_custom_bypass": "Armert tilpasset unntak",
|
|
||||||
"armed_home": "Armert hjemme",
|
|
||||||
"armed_night": "Armert natt",
|
|
||||||
"arming": "Armerer",
|
|
||||||
"disarmed": "Avsl\u00e5tt",
|
|
||||||
"disarming": "Skrur av",
|
|
||||||
"pending": "Venter",
|
|
||||||
"triggered": "Utl\u00f8st"
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"off": "Av",
|
|
||||||
"on": "P\u00e5"
|
|
||||||
},
|
|
||||||
"binary_sensor": {
|
|
||||||
"battery": {
|
|
||||||
"off": "Normalt",
|
|
||||||
"on": "Lavt"
|
|
||||||
},
|
|
||||||
"cold": {
|
|
||||||
"off": "",
|
|
||||||
"on": "Kald"
|
|
||||||
},
|
|
||||||
"connectivity": {
|
|
||||||
"off": "Frakoblet",
|
|
||||||
"on": "Tilkoblet"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Av",
|
|
||||||
"on": "P\u00e5"
|
|
||||||
},
|
|
||||||
"door": {
|
|
||||||
"off": "Lukket",
|
|
||||||
"on": "\u00c5pen"
|
|
||||||
},
|
|
||||||
"garage_door": {
|
|
||||||
"off": "Lukket",
|
|
||||||
"on": "\u00c5pen"
|
|
||||||
},
|
|
||||||
"gas": {
|
|
||||||
"off": "Klar",
|
|
||||||
"on": "Oppdaget"
|
|
||||||
},
|
|
||||||
"heat": {
|
|
||||||
"off": "Normal",
|
|
||||||
"on": "Varm"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"off": "L\u00e5st",
|
|
||||||
"on": "Ul\u00e5st"
|
|
||||||
},
|
|
||||||
"moisture": {
|
|
||||||
"off": "T\u00f8rr",
|
|
||||||
"on": "Fuktig"
|
|
||||||
},
|
|
||||||
"motion": {
|
|
||||||
"off": "Klar",
|
|
||||||
"on": "Oppdaget"
|
|
||||||
},
|
|
||||||
"occupancy": {
|
|
||||||
"off": "Klar",
|
|
||||||
"on": "Oppdaget"
|
|
||||||
},
|
|
||||||
"opening": {
|
|
||||||
"off": "Lukket",
|
|
||||||
"on": "\u00c5pen"
|
|
||||||
},
|
|
||||||
"presence": {
|
|
||||||
"off": "Borte",
|
|
||||||
"on": "Hjemme"
|
|
||||||
},
|
|
||||||
"problem": {
|
|
||||||
"off": "",
|
|
||||||
"on": ""
|
|
||||||
},
|
|
||||||
"safety": {
|
|
||||||
"off": "Sikker",
|
|
||||||
"on": "Usikker"
|
|
||||||
},
|
|
||||||
"smoke": {
|
|
||||||
"off": "Klar",
|
|
||||||
"on": "Oppdaget"
|
|
||||||
},
|
|
||||||
"sound": {
|
|
||||||
"off": "Klar",
|
|
||||||
"on": "Oppdaget"
|
|
||||||
},
|
|
||||||
"vibration": {
|
|
||||||
"off": "Klar",
|
|
||||||
"on": "Oppdaget"
|
|
||||||
},
|
|
||||||
"window": {
|
|
||||||
"off": "Lukket",
|
|
||||||
"on": "\u00c5pent"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"calendar": {
|
|
||||||
"off": "Av",
|
|
||||||
"on": "P\u00e5"
|
|
||||||
},
|
|
||||||
"camera": {
|
|
||||||
"idle": "Inaktiv",
|
|
||||||
"recording": "Opptak",
|
|
||||||
"streaming": "Str\u00f8mmer"
|
|
||||||
},
|
|
||||||
"climate": {
|
|
||||||
"auto": "Auto",
|
|
||||||
"cool": "Kj\u00f8ling",
|
|
||||||
"dry": "T\u00f8rr",
|
|
||||||
"fan_only": "Kun vifte",
|
|
||||||
"heat": "Varme",
|
|
||||||
"heat_cool": "Varme/kj\u00f8ling",
|
|
||||||
"off": "Av"
|
|
||||||
},
|
|
||||||
"configurator": {
|
|
||||||
"configure": "Konfigurer",
|
|
||||||
"configured": "Konfigurert"
|
|
||||||
},
|
|
||||||
"cover": {
|
|
||||||
"closed": "Lukket",
|
|
||||||
"closing": "Lukker",
|
|
||||||
"open": "\u00c5pen",
|
|
||||||
"opening": "\u00c5pner",
|
|
||||||
"stopped": "Stoppet"
|
|
||||||
},
|
|
||||||
"default": {
|
|
||||||
"off": "Av",
|
|
||||||
"on": "P\u00e5",
|
|
||||||
"unavailable": "Utilgjengelig",
|
|
||||||
"unknown": "Ukjent"
|
|
||||||
},
|
|
||||||
"device_tracker": {
|
|
||||||
"home": "Hjemme",
|
|
||||||
"not_home": "Borte"
|
|
||||||
},
|
|
||||||
"fan": {
|
|
||||||
"off": "Av",
|
|
||||||
"on": "P\u00e5"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"closed": "Lukket",
|
|
||||||
"closing": "Lukker",
|
|
||||||
"home": "Hjemme",
|
|
||||||
"locked": "L\u00e5st",
|
|
||||||
"not_home": "Borte",
|
|
||||||
"off": "Av",
|
|
||||||
"ok": "",
|
|
||||||
"on": "P\u00e5",
|
|
||||||
"open": "\u00c5pen",
|
|
||||||
"opening": "\u00c5pner",
|
|
||||||
"problem": "Problem",
|
|
||||||
"stopped": "Stoppet",
|
|
||||||
"unlocked": "Ul\u00e5st"
|
|
||||||
},
|
|
||||||
"input_boolean": {
|
|
||||||
"off": "Av",
|
|
||||||
"on": "P\u00e5"
|
|
||||||
},
|
|
||||||
"light": {
|
|
||||||
"off": "Av",
|
|
||||||
"on": "P\u00e5"
|
|
||||||
},
|
|
||||||
"lock": {
|
|
||||||
"locked": "L\u00e5st",
|
|
||||||
"unlocked": "Ul\u00e5st"
|
|
||||||
},
|
|
||||||
"media_player": {
|
|
||||||
"idle": "Inaktiv",
|
|
||||||
"off": "Av",
|
|
||||||
"on": "P\u00e5",
|
|
||||||
"paused": "Pauset",
|
|
||||||
"playing": "Spiller",
|
|
||||||
"standby": "Avventer"
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"home": "Hjemme",
|
|
||||||
"not_home": "Borte"
|
|
||||||
},
|
|
||||||
"plant": {
|
|
||||||
"ok": "",
|
|
||||||
"problem": "Problem"
|
|
||||||
},
|
|
||||||
"remote": {
|
|
||||||
"off": "Av",
|
|
||||||
"on": "P\u00e5"
|
|
||||||
},
|
|
||||||
"scene": {
|
|
||||||
"scening": "Scenende"
|
|
||||||
},
|
|
||||||
"script": {
|
|
||||||
"off": "Av",
|
|
||||||
"on": "P\u00e5"
|
|
||||||
},
|
|
||||||
"sensor": {
|
|
||||||
"off": "Av",
|
|
||||||
"on": "P\u00e5"
|
|
||||||
},
|
|
||||||
"sun": {
|
|
||||||
"above_horizon": "Over horisonten",
|
|
||||||
"below_horizon": "Under horisonten"
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"off": "Av",
|
|
||||||
"on": "P\u00e5"
|
|
||||||
},
|
|
||||||
"timer": {
|
|
||||||
"active": "aktiv",
|
|
||||||
"idle": "inaktiv",
|
|
||||||
"paused": "pauset"
|
|
||||||
},
|
|
||||||
"vacuum": {
|
|
||||||
"cleaning": "Rengj\u00f8r",
|
|
||||||
"docked": "Dokket",
|
|
||||||
"error": "Feil",
|
|
||||||
"idle": "Inaktiv",
|
|
||||||
"off": "Av",
|
|
||||||
"on": "P\u00e5",
|
|
||||||
"paused": "Pauset",
|
|
||||||
"returning": "Returner til dokk"
|
|
||||||
},
|
|
||||||
"weather": {
|
|
||||||
"clear-night": "Klart, natt",
|
|
||||||
"cloudy": "Skyet",
|
|
||||||
"exceptional": "Eksepsjonell",
|
|
||||||
"fog": "T\u00e5ke",
|
|
||||||
"hail": "Hagl",
|
|
||||||
"lightning": "Lyn",
|
|
||||||
"lightning-rainy": "Lyn, regn",
|
|
||||||
"partlycloudy": "Delvis skyet",
|
|
||||||
"pouring": "Kraftig nedb\u00f8r",
|
|
||||||
"rainy": "Regn",
|
|
||||||
"snowy": "Sn\u00f8",
|
|
||||||
"snowy-rainy": "Sludd",
|
|
||||||
"sunny": "Solfylt",
|
|
||||||
"windy": "Vind",
|
|
||||||
"windy-variant": "Vind"
|
|
||||||
},
|
|
||||||
"zwave": {
|
|
||||||
"default": {
|
|
||||||
"dead": "D\u00f8d",
|
|
||||||
"initializing": "Initialiserer",
|
|
||||||
"ready": "Klar",
|
|
||||||
"sleeping": "Sover"
|
|
||||||
},
|
|
||||||
"query_stage": {
|
|
||||||
"dead": "D\u00f8d ({query_stage})",
|
|
||||||
"initializing": "Initialiserer ({query_stage})"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user