Compare commits

...

67 Commits

Author SHA1 Message Date
Paulus Schoutsen da2c7dc743 Bumped version to 2021.3.0b7 2021-03-02 22:37:27 +00:00
Raman Gupta f74b88a29c Bump zwave-js-server-python to 0.20.1 (#47289) 2021-03-02 22:36:52 +00:00
Raman Gupta eb981fb007 Convert climacell forecast timestamp to isoformat so that UI shows the right times (#47286) 2021-03-02 22:36:51 +00:00
Alexei Chetroi 39b9ad0ca0 Update ZHA dependencies (#47282) 2021-03-02 22:36:50 +00:00
Bram Kragten ebb9008c27 Update frontend to 20210302.0 (#47278) 2021-03-02 22:36:49 +00:00
Tobias Sauerwein 4b9c148989 Fix issue when setting boost preset for a turned off Netatmo thermostat (#47275) 2021-03-02 22:36:49 +00:00
Aaron Bach b8bc0a7fe9 Bump simplisafe-python to 9.6.9 (#47273) 2021-03-02 22:36:48 +00:00
Erik Montnemery 7a6edf9725 Make MQTT number respect retain setting (#47270) 2021-03-02 22:36:47 +00:00
Raman Gupta 6c5c3233f1 Add raw values to zwave_js value notification event (#47258)
* add value_raw to value notification event that always shows the untranslated state value

* add property key and property to event params
2021-03-02 22:36:46 +00:00
Paulus Schoutsen d7f4416421 Fix Alexa doorbells (#47257) 2021-03-02 22:36:45 +00:00
Martin Hjelmare 23049955f8 Add zwave_js add-on manager (#47251)
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
2021-03-02 22:36:45 +00:00
Franck Nijhof d88ee3bf4a Upgrade pillow to 8.1.1 (#47223) 2021-03-02 22:36:44 +00:00
Simone Chemelli dddf28b138 Limit log spam by ConfigEntryNotReady (#47201) 2021-03-02 22:36:42 +00:00
HomeAssistant Azure 13516aa90c [ci skip] Translation update 2021-03-02 22:35:04 +00:00
HomeAssistant Azure d81155327a [ci skip] Translation update 2021-03-02 22:35:04 +00:00
HomeAssistant Azure 3b459cd59a [ci skip] Translation update 2021-03-02 22:35:03 +00:00
HomeAssistant Azure be4de15a10 [ci skip] Translation update 2021-03-02 22:35:03 +00:00
HomeAssistant Azure ab5173c4cf [ci skip] Translation update 2021-03-02 22:35:03 +00:00
Paulus Schoutsen ec95474604 Bumped version to 2021.3.0b6 2021-03-02 01:17:40 +00:00
Paulus Schoutsen 3117e47e1b Revert "Fix the updater schema (#47128)" (#47254)
This reverts commit 98be703d90.
2021-03-02 01:17:26 +00:00
Bram Kragten bd29d82728 Update frontend to 20210301.0 (#47252) 2021-03-02 01:17:26 +00:00
Raman Gupta 88d29bcf20 Add suggested area for zwave_js devices (#47250) 2021-03-02 01:17:25 +00:00
J. Nick Koston 3ebe31e172 Fix lutron caseta fan handling of speed off (#47244) 2021-03-02 01:17:24 +00:00
Aaron Bach 8cf0fcc7f3 Bump simplisafe-python to 9.6.8 (#47241) 2021-03-02 01:17:24 +00:00
Erik Montnemery 118c996a9f Pass variables to initial evaluation of template trigger (#47236)
* Pass variables to initial evaluation of template trigger

* Add test

* Clarify test
2021-03-02 01:17:23 +00:00
Shay Levy c411f0dcdc Fix Shelly Polling (#47224) 2021-03-02 01:17:22 +00:00
starkillerOG 30ccd33e7f Fix Xiaomi Miio flow unique_id for non discovery flows (#47222) 2021-03-02 01:17:22 +00:00
Franck Nijhof acdad8a28c Fix duplicate template handling in Persistent Notifications (#47217) 2021-03-02 01:17:21 +00:00
J. Nick Koston c28903103d Fix harmony failing to switch activities when a switch is in progress (#47212)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2021-03-02 01:17:20 +00:00
Erik Montnemery b2a3c35e3a Fix race when disabling config entries (#47210)
* Fix race when disabling config entries

* Remove unused constant
2021-03-02 01:17:19 +00:00
Max Chodorowski ea65f612cc Fix number of reported issues by github integration (#47203) 2021-03-02 01:17:19 +00:00
Marcel van der Veldt 819738a15c Update color logic for zwave_js light platform (#47110)
Co-authored-by: Raman Gupta <7243222+raman325@users.noreply.github.com>
2021-03-02 01:17:18 +00:00
Pascal Vizeli f192b3c1e5 Bumped version to 2021.3.0b5 2021-03-01 08:32:13 +00:00
Stefan Agner b9edd0d7ad Fix generic-x86-64 build (#47214)
Replace the wrong Docker Hub repository slipped in during testing.
2021-03-01 08:30:22 +00:00
J. Nick Koston 4907c12964 Bump HAP-python to 3.3.2 to fix unavailable condition on restart (#47213)
Fixes

https://github.com/ikalchev/HAP-python/compare/v3.3.1...v3.3.2
2021-03-01 08:30:21 +00:00
J. Nick Koston 62e224ecb0 Increment the homekit config version when restarting (#47209)
If an entity changes between restart the iOS/controller
device may have cached the old chars for the accessory.
To force the iOS/controller to reload the chars, we
increment the config version when Home Assistant restarts
2021-03-01 08:30:21 +00:00
Aaron Bach 0e951f288b Bump simplisafe-python to 9.6.7 (#47206) 2021-03-01 08:30:20 +00:00
starkillerOG aa9b445856 Fix Xiaomi Miio discovery (#47134) 2021-03-01 08:30:20 +00:00
AJ Schmidt 8513250628 Update AlarmDecoder dependency (#46841) 2021-03-01 08:30:19 +00:00
Paulus Schoutsen 6887474ddc Bumped version to 2021.3.0b4 2021-02-28 20:22:46 +00:00
J. Nick Koston e93868f85b Update HAP-python to 3.3.1 (#47180)
Fixes disconnect when setting a single char fails
https://github.com/ikalchev/HAP-python/compare/v3.3.0...v3.3.1
2021-02-28 20:22:29 +00:00
David F. Mulcahey db098d90dd Bump ZHA quirks to 0.0.54 (#47172) 2021-02-28 20:22:29 +00:00
Stefan Agner 552da0327e Bump builder to get generic-x86-64 nightly builds (#47164) 2021-02-28 20:22:28 +00:00
Erik Montnemery 104d5c510f Fix MQTT trigger where wanted payload may be parsed as an integer (#47162) 2021-02-28 20:22:27 +00:00
Paulus Schoutsen d9d979d50e Fix the updater schema (#47128) 2021-02-28 20:21:41 +00:00
Bram Kragten e65b2231ba Update frontend to 20210226.0 (#47123) 2021-02-28 20:21:41 +00:00
J. Nick Koston 2b0f6716b3 Provide a human readable exception for the percentage util (#47121) 2021-02-28 20:21:40 +00:00
J. Nick Koston dd4f8bf4b4 Handle lutron_caseta fan speed being none (#47120) 2021-02-28 20:21:39 +00:00
Shay Levy 505ca07c4e Fix Shelly RGBW (#47116) 2021-02-28 20:21:39 +00:00
Paulus Schoutsen 807bf15ff3 Use async_capture_events to avoid running in executor (#47111) 2021-02-28 20:21:38 +00:00
Paulus Schoutsen cdf7372fd8 Bumped version to 2021.3.0b3 2021-02-26 19:21:15 +00:00
Allen Porter 0969cc985b Bump google-nest-sdm to v0.2.12 to improve API call error messages (#47108) 2021-02-26 19:21:08 +00:00
Stefan Agner 5e2bafca56 Add new machine generic-x86-64 to build matrix (#47095)
The Intel NUC machine runs on most UEFI capable x86-64 machines today.
Lets start a new machine generic-x86-64 which will replace intel-nuc
over time.
2021-02-26 19:21:07 +00:00
Simone Chemelli 1d1be8ad1a Bump aioshelly to 0.6.1 (#47088) 2021-02-26 19:21:06 +00:00
Marcel van der Veldt d55f0df09a Fix Z-Wave JS discovery schema for thermostat devices (#47087)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-02-26 19:21:06 +00:00
Erik Montnemery 96e118ccfe Bump pychromecast to 8.1.2 (#47085) 2021-02-26 19:21:05 +00:00
Paulus Schoutsen 255b6faa7f Upgrade aiohttp to 3.7.4 (#47077) 2021-02-26 19:21:04 +00:00
rikroe 4cd40d0f9f Bump bimmer_connected to 0.7.15 and fix bugs (#47066)
Co-authored-by: rikroe <rikroe@users.noreply.github.com>
2021-02-26 19:21:03 +00:00
J. Nick Koston c12769213d Add suggested area to hue (#47056) 2021-02-26 19:21:02 +00:00
CurrentThread 6a850a1481 Add support for Shelly SHBTN-2 device triggers (#46644) 2021-02-26 19:21:02 +00:00
Joakim Plate 101897c260 Add support for v6 features to philips js integration (#46422) 2021-02-26 19:21:01 +00:00
Paulus Schoutsen 6cdd6c3f44 Bumped version to 2021.3.0b2 2021-02-26 06:01:42 +00:00
Paulus Schoutsen 2c30579a11 Bump Z-Wave JS Server Python to 0.20.0 (#47076) 2021-02-26 06:01:35 +00:00
Raman Gupta ae0d301fd9 catch ValueError when unique ID update fails because its taken and remove the duplicate entity (#47072) 2021-02-26 06:01:34 +00:00
J. Nick Koston a7a66e8ddb Ensure hue options show the defaults when the config options have not yet been saved (#47067) 2021-02-26 06:01:33 +00:00
Bram Kragten 5228bbd43c Revert CORS changes for my home assistant (#47064)
* Revert CORS changes for my home assistant

* Update test_init.py

* Update test_init.py
2021-02-26 06:01:33 +00:00
Bram Kragten 35bce434cc Updated frontend to 20210225.0 (#47059) 2021-02-26 06:01:32 +00:00
342 changed files with 5006 additions and 913 deletions
+4 -2
View File
@@ -14,7 +14,7 @@ schedules:
always: true
variables:
- name: versionBuilder
value: '2020.11.0'
value: '2021.02.0'
- group: docker
- group: github
- group: twine
@@ -114,10 +114,12 @@ stages:
pool:
vmImage: 'ubuntu-latest'
strategy:
maxParallel: 15
maxParallel: 17
matrix:
qemux86-64:
buildMachine: 'qemux86-64'
generic-x86-64:
buildMachine: 'generic-x86-64'
intel-nuc:
buildMachine: 'intel-nuc'
qemux86:
@@ -1,6 +1,10 @@
{
"config": {
"abort": {
"single_instance_allowed": "Al geconfigureerd. Slechts een enkele configuratie mogelijk."
},
"error": {
"cannot_connect": "Kan geen verbinding maken",
"invalid_api_key": "API-sleutel",
"requests_exceeded": "Het toegestane aantal verzoeken aan de Accuweather API is overschreden. U moet wachten of de API-sleutel wijzigen."
},
@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "Standort ist bereits konfiguriert"
},
"error": {
"invalid_api_key": "Ung\u00fcltiger API-Schl\u00fcssel"
},
"step": {
"user": {
"data": {
"api_key": "API-Schl\u00fcssel",
"latitude": "Breitengrad",
"longitude": "L\u00e4ngengrad"
}
}
}
}
}
@@ -22,7 +22,9 @@
},
"system_health": {
"info": {
"can_reach_server": "Servidor d'Airly accessible"
"can_reach_server": "Servidor d'Airly accessible",
"requests_per_day": "Sol\u00b7licituds per dia permeses",
"requests_remaining": "Sol\u00b7licituds permeses restants"
}
}
}
@@ -22,7 +22,9 @@
},
"system_health": {
"info": {
"can_reach_server": "Reach Airly server"
"can_reach_server": "Reach Airly server",
"requests_per_day": "Allowed requests per day",
"requests_remaining": "Remaining allowed requests"
}
}
}
@@ -22,7 +22,9 @@
},
"system_health": {
"info": {
"can_reach_server": "\u00dchendus Airly serveriga"
"can_reach_server": "\u00dchendus Airly serveriga",
"requests_per_day": "Lubatud taotlusi p\u00e4evas",
"requests_remaining": "J\u00e4\u00e4nud lubatud taotlusi"
}
}
}
@@ -22,7 +22,9 @@
},
"system_health": {
"info": {
"can_reach_server": "\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 Airly"
"can_reach_server": "\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 Airly",
"requests_per_day": "\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0434\u0435\u043d\u044c",
"requests_remaining": "\u0421\u0447\u0451\u0442\u0447\u0438\u043a \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432"
}
}
}
@@ -22,7 +22,9 @@
},
"system_health": {
"info": {
"can_reach_server": "\u9023\u7dda Airly \u4f3a\u670d\u5668"
"can_reach_server": "\u9023\u7dda Airly \u4f3a\u670d\u5668",
"requests_per_day": "\u6bcf\u65e5\u5141\u8a31\u7684\u8acb\u6c42",
"requests_remaining": "\u5176\u9918\u5141\u8a31\u7684\u8acb\u6c42"
}
}
}
@@ -7,7 +7,8 @@
"error": {
"cannot_connect": "Feeler beim verbannen",
"general_error": "Onerwaarte Feeler",
"invalid_api_key": "Ong\u00ebltegen API Schl\u00ebssel"
"invalid_api_key": "Ong\u00ebltegen API Schl\u00ebssel",
"location_not_found": "Standuert net fonnt."
},
"step": {
"geography": {
@@ -19,6 +20,12 @@
"description": "Benotz Airvisual cloud API fir eng geografescher Lag z'iwwerwaachen.",
"title": "Geografie ariichten"
},
"geography_by_name": {
"data": {
"city": "Stad",
"country": "Land"
}
},
"node_pro": {
"data": {
"ip_address": "Host",
@@ -2,7 +2,7 @@
"domain": "alarmdecoder",
"name": "AlarmDecoder",
"documentation": "https://www.home-assistant.io/integrations/alarmdecoder",
"requirements": ["adext==0.3"],
"requirements": ["adext==0.4.1"],
"codeowners": ["@ajschmidt8"],
"config_flow": true
}
@@ -1,7 +1,7 @@
{
"config": {
"abort": {
"already_configured": "AlarmDecoder-apparaat is al geconfigureerd."
"already_configured": "Apparaat is al geconfigureerd"
},
"create_entry": {
"default": "Succesvol verbonden met AlarmDecoder."
+11 -19
View File
@@ -73,10 +73,7 @@ async def async_enable_proactive_mode(hass, smart_home_config):
if not should_report and interface.properties_proactively_reported():
should_report = True
if (
interface.name() == "Alexa.DoorbellEventSource"
and new_state.state == STATE_ON
):
if interface.name() == "Alexa.DoorbellEventSource":
should_doorbell = True
break
@@ -84,27 +81,22 @@ async def async_enable_proactive_mode(hass, smart_home_config):
return
if should_doorbell:
should_report = False
if new_state.state == STATE_ON:
await async_send_doorbell_event_message(
hass, smart_home_config, alexa_changed_entity
)
return
if should_report:
alexa_properties = list(alexa_changed_entity.serialize_properties())
else:
alexa_properties = None
alexa_properties = list(alexa_changed_entity.serialize_properties())
if not checker.async_is_significant_change(
new_state, extra_arg=alexa_properties
):
return
if should_report:
await async_send_changereport_message(
hass, smart_home_config, alexa_changed_entity, alexa_properties
)
elif should_doorbell:
await async_send_doorbell_event_message(
hass, smart_home_config, alexa_changed_entity
)
await async_send_changereport_message(
hass, smart_home_config, alexa_changed_entity, alexa_properties
)
return hass.helpers.event.async_track_state_change(
MATCH_ALL, async_entity_state_listener
@@ -246,7 +238,7 @@ async def async_send_delete_message(hass, config, entity_ids):
async def async_send_doorbell_event_message(hass, config, alexa_entity):
"""Send a DoorbellPress event message for an Alexa entity.
https://developer.amazon.com/docs/smarthome/send-events-to-the-alexa-event-gateway.html
https://developer.amazon.com/en-US/docs/alexa/device-apis/alexa-doorbelleventsource.html
"""
token = await config.async_get_access_token()
-1
View File
@@ -178,7 +178,6 @@ class APIDiscoveryView(HomeAssistantView):
requires_auth = False
url = URL_API_DISCOVERY_INFO
name = "api:discovery"
cors_allowed = True
async def get(self, request):
"""Get discovery information."""
@@ -2,6 +2,7 @@
"config": {
"abort": {
"already_configured": "Apparaat is al geconfigureerd",
"already_in_progress": "De configuratiestroom is al aan de gang",
"cannot_connect": "Kan geen verbinding maken"
},
"error": {
@@ -0,0 +1,24 @@
{
"config": {
"abort": {
"single_instance_allowed": "Bereits konfiguriert. Nur eine einzige Konfiguration m\u00f6glich."
},
"error": {
"cannot_connect": "Verbindung fehlgeschlagen",
"invalid_host": "Ung\u00fcltiger Hostname oder IP-Adresse",
"unknown": "Unerwarteter Fehler"
},
"step": {
"user": {
"data": {
"host": "Host",
"mode": "Modus",
"name": "Name",
"password": "Passwort",
"port": "Port",
"username": "Benutzername"
}
}
}
}
}
@@ -6,6 +6,7 @@
"error": {
"cannot_connect": "Kan geen verbinding maken",
"invalid_host": "Ongeldige hostnaam of IP-adres",
"ssh_not_file": "SSH-sleutelbestand niet gevonden",
"unknown": "Onverwachte fout"
},
"step": {
@@ -1,7 +1,8 @@
{
"config": {
"abort": {
"already_configured": "Account al geconfigureerd"
"already_configured": "Account al geconfigureerd",
"reauth_successful": "Herauthenticatie was succesvol"
},
"error": {
"cannot_connect": "Verbinding mislukt, probeer het opnieuw",
@@ -6,23 +6,23 @@
"reauth_successful": "\u91cd\u65b0\u8a8d\u8b49\u6210\u529f"
},
"error": {
"invalid_access_token": "\u5b58\u53d6\u5bc6\u9470\u7121\u6548",
"invalid_access_token": "\u5b58\u53d6\u6b0a\u6756\u7121\u6548",
"unknown": "\u672a\u9810\u671f\u932f\u8aa4"
},
"step": {
"reauth": {
"data": {
"access_token": "\u5b58\u53d6\u5bc6\u9470",
"access_token": "\u5b58\u53d6\u6b0a\u6756",
"email": "\u96fb\u5b50\u90f5\u4ef6"
},
"description": "\u8acb\u91cd\u65b0\u8f38\u5165 Awair \u958b\u767c\u8005\u5b58\u53d6\u5bc6\u9470\u3002"
"description": "\u8acb\u91cd\u65b0\u8f38\u5165 Awair \u958b\u767c\u8005\u5b58\u53d6\u6b0a\u6756\u3002"
},
"user": {
"data": {
"access_token": "\u5b58\u53d6\u5bc6\u9470",
"access_token": "\u5b58\u53d6\u6b0a\u6756",
"email": "\u96fb\u5b50\u90f5\u4ef6"
},
"description": "\u5fc5\u9808\u5148\u8a3b\u518a Awair \u958b\u767c\u8005\u5b58\u53d6\u5bc6\u9470\uff1ahttps://developer.getawair.com/onboard/login"
"description": "\u5fc5\u9808\u5148\u8a3b\u518a Awair \u958b\u767c\u8005\u5b58\u53d6\u6b0a\u6756\uff1ahttps://developer.getawair.com/onboard/login"
}
}
}
@@ -1,11 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Account is al geconfigureerd"
"already_configured": "Account is al geconfigureerd",
"reauth_successful": "Herauthenticatie was succesvol"
},
"error": {
"cannot_connect": "Kan geen verbinding maken",
"invalid_auth": "Ongeldige authenticatie"
"invalid_auth": "Ongeldige authenticatie",
"project_error": "Kon geen projectinformatie ophalen."
},
"step": {
"user": {
"data": {
"organization": "Organisatie",
"project": "Project"
}
}
}
}
}
@@ -4,6 +4,7 @@
"already_configured": "Apparaat is al geconfigureerd"
},
"error": {
"cannot_connect": "Kan geen verbinding maken",
"invalid_access_token": "Ongeldig toegangstoken",
"invalid_auth": "Ongeldige authenticatie",
"unknown": "Onverwachte fout"
@@ -5,7 +5,7 @@
},
"error": {
"cannot_connect": "\u9023\u7dda\u5931\u6557",
"invalid_access_token": "\u5b58\u53d6\u5bc6\u9470\u7121\u6548",
"invalid_access_token": "\u5b58\u53d6\u6b0a\u6756\u7121\u6548",
"invalid_auth": "\u9a57\u8b49\u78bc\u7121\u6548",
"unknown": "\u672a\u9810\u671f\u932f\u8aa4"
},
@@ -122,7 +122,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry):
def _update_all() -> None:
"""Update all BMW accounts."""
for entry in hass.data[DOMAIN][DATA_ENTRIES].values():
for entry in hass.data[DOMAIN][DATA_ENTRIES].copy().values():
entry[CONF_ACCOUNT].update()
# Add update listener for config entry changes (options)
@@ -42,12 +42,12 @@ class BMWDeviceTracker(BMWConnectedDriveBaseEntity, TrackerEntity):
@property
def latitude(self):
"""Return latitude value of the device."""
return self._location[0]
return self._location[0] if self._location else None
@property
def longitude(self):
"""Return longitude value of the device."""
return self._location[1]
return self._location[1] if self._location else None
@property
def name(self):
@@ -2,7 +2,7 @@
"domain": "bmw_connected_drive",
"name": "BMW Connected Drive",
"documentation": "https://www.home-assistant.io/integrations/bmw_connected_drive",
"requirements": ["bimmer_connected==0.7.14"],
"requirements": ["bimmer_connected==0.7.15"],
"codeowners": ["@gerard33", "@rikroe"],
"config_flow": true
}
@@ -9,13 +9,13 @@
"old_firmware": "Hi ha un programari antic i no compatible al dispositiu Bond - actualitza'l abans de continuar",
"unknown": "Error inesperat"
},
"flow_title": "Bond: {bond_id} ({host})",
"flow_title": "Bond: {name} ({host})",
"step": {
"confirm": {
"data": {
"access_token": "Token d'acc\u00e9s"
},
"description": "Vols configurar {bond_id}?"
"description": "Vols configurar {name}?"
},
"user": {
"data": {
@@ -15,7 +15,7 @@
"data": {
"access_token": "P\u0159\u00edstupov\u00fd token"
},
"description": "Chcete nastavit {bond_id} ?"
"description": "Chcete nastavit {name}?"
},
"user": {
"data": {
@@ -9,13 +9,13 @@
"old_firmware": "Bondi seadme ei toeta vana p\u00fcsivara - uuenda enne j\u00e4tkamist",
"unknown": "Tundmatu viga"
},
"flow_title": "Bond: {bond_id} ( {host} )",
"flow_title": "Bond: {name} ( {host} )",
"step": {
"confirm": {
"data": {
"access_token": "Juurdep\u00e4\u00e4sut\u00f5end"
},
"description": "Kas soovid seadistada teenuse {bond_id} ?"
"description": "Kas soovid seadistada teenust {name} ?"
},
"user": {
"data": {
@@ -9,13 +9,13 @@
"old_firmware": "Ancien micrologiciel non pris en charge sur l'appareil Bond - veuillez mettre \u00e0 niveau avant de continuer",
"unknown": "Erreur inattendue"
},
"flow_title": "Bond : {bond_id} ({h\u00f4te})",
"flow_title": "Lien : {name} ({host})",
"step": {
"confirm": {
"data": {
"access_token": "Jeton d'acc\u00e8s"
},
"description": "Voulez-vous configurer {bond_id} ?"
"description": "Voulez-vous configurer {name}?"
},
"user": {
"data": {
@@ -9,13 +9,13 @@
"old_firmware": "Firmware precedente non supportato sul dispositivo Bond - si prega di aggiornare prima di continuare",
"unknown": "Errore imprevisto"
},
"flow_title": "Bond: {bond_id} ({host})",
"flow_title": "Bond: {name} ({host})",
"step": {
"confirm": {
"data": {
"access_token": "Token di accesso"
},
"description": "Vuoi configurare {bond_id}?"
"description": "Vuoi configurare {name}?"
},
"user": {
"data": {
@@ -10,8 +10,14 @@
},
"flow_title": "Bond: {bond_id} ({host})",
"step": {
"confirm": {
"data": {
"access_token": "Toegangstoken"
}
},
"user": {
"data": {
"access_token": "Toegangstoken",
"host": "Host"
}
}
@@ -9,13 +9,13 @@
"old_firmware": "Gammel fastvare som ikke st\u00f8ttes p\u00e5 Bond-enheten \u2013 vennligst oppgrader f\u00f8r du fortsetter",
"unknown": "Uventet feil"
},
"flow_title": "",
"flow_title": "Obligasjon: {name} ({host})",
"step": {
"confirm": {
"data": {
"access_token": "Tilgangstoken"
},
"description": "Vil du konfigurere {bond_id}?"
"description": "Vil du konfigurere {name}?"
},
"user": {
"data": {
@@ -9,13 +9,13 @@
"old_firmware": "Stare, nieobs\u0142ugiwane oprogramowanie na urz\u0105dzeniu Bond - zaktualizuj przed kontynuowaniem",
"unknown": "Nieoczekiwany b\u0142\u0105d"
},
"flow_title": "Bond: {bond_id} ({host})",
"flow_title": "Bond: {name} ({host})",
"step": {
"confirm": {
"data": {
"access_token": "Token dost\u0119pu"
},
"description": "Czy chcesz skonfigurowa\u0107 {bond_id}?"
"description": "Czy chcesz skonfigurowa\u0107 {name}?"
},
"user": {
"data": {
@@ -9,13 +9,13 @@
"old_firmware": "\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0430 \u0438 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0435\u0439.",
"unknown": "\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430."
},
"flow_title": "Bond {bond_id} ({host})",
"flow_title": "Bond: {name} ({host})",
"step": {
"confirm": {
"data": {
"access_token": "\u0422\u043e\u043a\u0435\u043d \u0434\u043e\u0441\u0442\u0443\u043f\u0430"
},
"description": "\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c {bond_id}?"
"description": "\u0425\u043e\u0442\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c {name}?"
},
"user": {
"data": {
@@ -9,17 +9,17 @@
"old_firmware": "Bond \u88dd\u7f6e\u4f7f\u7528\u4e0d\u652f\u63f4\u7684\u820a\u7248\u672c\u97cc\u9ad4 - \u8acb\u66f4\u65b0\u5f8c\u518d\u7e7c\u7e8c",
"unknown": "\u672a\u9810\u671f\u932f\u8aa4"
},
"flow_title": "Bond\uff1a{bond_id} ({host})",
"flow_title": "Bond\uff1a{name} ({host})",
"step": {
"confirm": {
"data": {
"access_token": "\u5b58\u53d6\u5bc6\u9470"
"access_token": "\u5b58\u53d6\u6b0a\u6756"
},
"description": "\u662f\u5426\u8981\u8a2d\u5b9a {bond_id}\uff1f"
"description": "\u662f\u5426\u8981\u8a2d\u5b9a {name}\uff1f"
},
"user": {
"data": {
"access_token": "\u5b58\u53d6\u5bc6\u9470",
"access_token": "\u5b58\u53d6\u6b0a\u6756",
"host": "\u4e3b\u6a5f\u7aef"
}
}
@@ -2,6 +2,7 @@
"config": {
"abort": {
"already_configured": "Apparaat is al geconfigureerd",
"already_in_progress": "De configuratiestroom is al aan de gang",
"cannot_connect": "Kon niet verbinden",
"invalid_host": "Ongeldige hostnaam of IP-adres",
"not_supported": "Apparaat wordt niet ondersteund",
@@ -17,6 +18,15 @@
"finish": {
"data": {
"name": "Naam"
},
"title": "Kies een naam voor het apparaat"
},
"reset": {
"title": "Ontgrendel het apparaat"
},
"unlock": {
"data": {
"unlock": "Ja, doe het."
}
},
"user": {
+1 -1
View File
@@ -3,7 +3,7 @@
"name": "Google Cast",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/cast",
"requirements": ["pychromecast==8.1.0"],
"requirements": ["pychromecast==8.1.2"],
"after_dependencies": ["cloud", "http", "media_source", "plex", "tts", "zeroconf"],
"zeroconf": ["_googlecast._tcp.local."],
"codeowners": ["@emontnemery"]
@@ -0,0 +1,10 @@
{
"options": {
"step": {
"init": {
"title": "Update ClimaCell opties"
}
}
},
"title": "ClimaCell"
}
@@ -0,0 +1,34 @@
{
"config": {
"error": {
"cannot_connect": "Ha fallat la connexi\u00f3",
"invalid_api_key": "Clau API inv\u00e0lida",
"rate_limited": "Freq\u00fc\u00e8ncia limitada temporalment, torna-ho a provar m\u00e9s tard.",
"unknown": "Error inesperat"
},
"step": {
"user": {
"data": {
"api_key": "Clau API",
"latitude": "Latitud",
"longitude": "Longitud",
"name": "Nom"
},
"description": "Si no es proporcionen la Latitud i Longitud, s'utilitzaran els valors per defecte de la configuraci\u00f3 de Home Assistant. Es crear\u00e0 una entitat per a cada tipus de previsi\u00f3, per\u00f2 nom\u00e9s s'habilitaran les que seleccionis."
}
}
},
"options": {
"step": {
"init": {
"data": {
"forecast_types": "Tipus de previsi\u00f3",
"timestep": "Minuts entre previsions NowCast"
},
"description": "Si decideixes activar l'entitat de predicci\u00f3 \"nowcast\", podr\u00e0s configurar l'interval en minuts entre cada previsi\u00f3. El nombre de previsions proporcionades dep\u00e8n d'aquest interval de minuts.",
"title": "Actualitzaci\u00f3 de les opcions de ClimaCell"
}
}
},
"title": "ClimaCell"
}
@@ -0,0 +1,20 @@
{
"config": {
"error": {
"cannot_connect": "Nepoda\u0159ilo se p\u0159ipojit",
"invalid_api_key": "Neplatn\u00fd kl\u00ed\u010d API",
"unknown": "Neo\u010dek\u00e1van\u00e1 chyba"
},
"step": {
"user": {
"data": {
"api_key": "Kl\u00ed\u010d API",
"latitude": "Zem\u011bpisn\u00e1 \u0161\u00ed\u0159ka",
"longitude": "Zem\u011bpisn\u00e1 d\u00e9lka",
"name": "Jm\u00e9no"
}
}
}
},
"title": "ClimaCell"
}
@@ -0,0 +1,19 @@
{
"config": {
"error": {
"cannot_connect": "Verbindung fehlgeschlagen",
"invalid_api_key": "Ung\u00fcltiger API-Schl\u00fcssel",
"unknown": "Unerwarteter Fehler"
},
"step": {
"user": {
"data": {
"api_key": "API-Schl\u00fcssel",
"latitude": "Breitengrad",
"longitude": "L\u00e4ngengrad",
"name": "Name"
}
}
}
}
}
@@ -0,0 +1,34 @@
{
"config": {
"error": {
"cannot_connect": "Failed to connect",
"invalid_api_key": "Invalid API key",
"rate_limited": "Currently rate limited, please try again later.",
"unknown": "Unexpected error"
},
"step": {
"user": {
"data": {
"api_key": "API Key",
"latitude": "Latitude",
"longitude": "Longitude",
"name": "Name"
},
"description": "If Latitude and Longitude are not provided, the default values in the Home Assistant configuration will be used. An entity will be created for each forecast type but only the ones you select will be enabled by default."
}
}
},
"options": {
"step": {
"init": {
"data": {
"forecast_types": "Forecast Type(s)",
"timestep": "Min. Between NowCast Forecasts"
},
"description": "If you choose to enable the `nowcast` forecast entity, you can configure the number of minutes between each forecast. The number of forecasts provided depends on the number of minutes chosen between forecasts.",
"title": "Update ClimaCell Options"
}
}
},
"title": "ClimaCell"
}
@@ -0,0 +1,30 @@
{
"config": {
"error": {
"rate_limited": "Actualmente la tarifa est\u00e1 limitada, por favor int\u00e9ntelo m\u00e1s tarde."
},
"step": {
"user": {
"data": {
"latitude": "Latitud",
"longitude": "Longitud",
"name": "Nombre"
},
"description": "Si no se proporcionan Latitud y Longitud , se utilizar\u00e1n los valores predeterminados en la configuraci\u00f3n de Home Assistant. Se crear\u00e1 una entidad para cada tipo de pron\u00f3stico, pero solo las que seleccione estar\u00e1n habilitadas de forma predeterminada."
}
}
},
"options": {
"step": {
"init": {
"data": {
"forecast_types": "Tipo(s) de pron\u00f3stico",
"timestep": "Min. Entre pron\u00f3sticos de NowCast"
},
"description": "Si elige habilitar la entidad de pron\u00f3stico \"nowcast\", puede configurar el n\u00famero de minutos entre cada pron\u00f3stico. El n\u00famero de pron\u00f3sticos proporcionados depende del n\u00famero de minutos elegidos entre los pron\u00f3sticos.",
"title": "Actualizar las opciones ClimaCell"
}
}
},
"title": "ClimaCell"
}
@@ -0,0 +1,34 @@
{
"config": {
"error": {
"cannot_connect": "\u00dchendamine nurjus",
"invalid_api_key": "Vale API v\u00f5ti",
"rate_limited": "Hetkel on p\u00e4ringud piiratud, proovi hiljem uuesti.",
"unknown": "Tundmatu t\u00f5rge"
},
"step": {
"user": {
"data": {
"api_key": "API v\u00f5ti",
"latitude": "Laiuskraad",
"longitude": "Pikkuskraad",
"name": "Nimi"
},
"description": "Kui [%key:component::climacell::config::step::user::d ata::latitude%] ja [%key:component::climacell::config::step::user::d ata::longitude%] andmed pole sisestatud kasutatakse Home Assistanti vaikev\u00e4\u00e4rtusi. Olem luuakse iga prognoosit\u00fc\u00fcbi jaoks kuid vaikimisi lubatakse ainult need, mille valid."
}
}
},
"options": {
"step": {
"init": {
"data": {
"forecast_types": "Prognoosi t\u00fc\u00fcp (t\u00fc\u00fcbid)",
"timestep": "Minuteid NowCasti prognooside vahel"
},
"description": "Kui otsustad lubada \"nowcast\" prognoosi\u00fcksuse, saad seadistada minutite arvu iga prognoosi vahel. Esitatavate prognooside arv s\u00f5ltub prognooside vahel valitud minutite arvust.",
"title": "V\u00e4rskenda ClimaCell suvandeid"
}
}
},
"title": "ClimaCell"
}
@@ -0,0 +1,34 @@
{
"config": {
"error": {
"cannot_connect": "\u00c9chec de connexion",
"invalid_api_key": "Cl\u00e9 API invalide",
"rate_limited": "Currently rate limited, please try again later.",
"unknown": "Erreur inattendue"
},
"step": {
"user": {
"data": {
"api_key": "Cl\u00e9 d'API",
"latitude": "Latitude",
"longitude": "Longitude",
"name": "Nom"
},
"description": "Si Latitude et Longitude ne sont pas fournis, les valeurs par d\u00e9faut de la configuration de Home Assistant seront utilis\u00e9es. Une entit\u00e9 sera cr\u00e9\u00e9e pour chaque type de pr\u00e9vision, mais seules celles que vous s\u00e9lectionnez seront activ\u00e9es par d\u00e9faut."
}
}
},
"options": {
"step": {
"init": {
"data": {
"forecast_types": "Type(s) de pr\u00e9vision",
"timestep": "Min. Entre les pr\u00e9visions NowCast"
},
"description": "Si vous choisissez d'activer l'entit\u00e9 de pr\u00e9vision \u00abnowcast\u00bb, vous pouvez configurer le nombre de minutes entre chaque pr\u00e9vision. Le nombre de pr\u00e9visions fournies d\u00e9pend du nombre de minutes choisies entre les pr\u00e9visions.",
"title": "Mettre \u00e0 jour les options de ClimaCell"
}
}
},
"title": "ClimaCell"
}
@@ -0,0 +1,17 @@
{
"config": {
"error": {
"unknown": "\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05dc\u05ea\u05d9 \u05e6\u05e4\u05d5\u05d9\u05d4"
},
"step": {
"user": {
"data": {
"api_key": "\u05de\u05e4\u05ea\u05d7 API",
"latitude": "\u05e7\u05d5 \u05e8\u05d5\u05d7\u05d1",
"longitude": "\u05e7\u05d5 \u05d0\u05d5\u05e8\u05da",
"name": "\u05e9\u05dd"
}
}
}
}
}
@@ -0,0 +1,34 @@
{
"config": {
"error": {
"cannot_connect": "Impossibile connettersi",
"invalid_api_key": "Chiave API non valida",
"rate_limited": "Al momento la tariffa \u00e8 limitata, riprova pi\u00f9 tardi.",
"unknown": "Errore imprevisto"
},
"step": {
"user": {
"data": {
"api_key": "Chiave API",
"latitude": "Latitudine",
"longitude": "Logitudine",
"name": "Nome"
},
"description": "Se Latitudine e Logitudine non vengono forniti, verranno utilizzati i valori predefiniti nella configurazione di Home Assistant. Verr\u00e0 creata un'entit\u00e0 per ogni tipo di previsione, ma solo quelli selezionati saranno abilitati per impostazione predefinita."
}
}
},
"options": {
"step": {
"init": {
"data": {
"forecast_types": "Tipo(i) di previsione",
"timestep": "Minuti tra le previsioni di NowCast"
},
"description": "Se scegli di abilitare l'entit\u00e0 di previsione `nowcast`, puoi configurare il numero di minuti tra ogni previsione. Il numero di previsioni fornite dipende dal numero di minuti scelti tra le previsioni.",
"title": "Aggiorna le opzioni di ClimaCell"
}
}
},
"title": "ClimaCell"
}
@@ -0,0 +1,32 @@
{
"config": {
"error": {
"cannot_connect": "Kan geen verbinding maken",
"invalid_api_key": "Ongeldige API-sleutel",
"unknown": "Onverwachte fout"
},
"step": {
"user": {
"data": {
"api_key": "API-sleutel",
"latitude": "Breedtegraad",
"longitude": "Lengtegraad",
"name": "Naam"
},
"description": "Indien Breedtegraad en Lengtegraad niet worden opgegeven, worden de standaardwaarden in de Home Assistant-configuratie gebruikt. Er wordt een entiteit gemaakt voor elk voorspellingstype maar alleen degene die u selecteert worden standaard ingeschakeld."
}
}
},
"options": {
"step": {
"init": {
"data": {
"forecast_types": "Voorspellingstype(n)"
},
"description": "Als u ervoor kiest om de `nowcast` voorspellingsentiteit in te schakelen, kan u het aantal minuten tussen elke voorspelling configureren. Het aantal voorspellingen hangt af van het aantal gekozen minuten tussen de voorspellingen.",
"title": "Update ClimaCell Opties"
}
}
},
"title": "ClimaCell"
}
@@ -0,0 +1,34 @@
{
"config": {
"error": {
"cannot_connect": "Tilkobling mislyktes",
"invalid_api_key": "Ugyldig API-n\u00f8kkel",
"rate_limited": "Prisen er for \u00f8yeblikket begrenset. Pr\u00f8v igjen senere.",
"unknown": "Uventet feil"
},
"step": {
"user": {
"data": {
"api_key": "API-n\u00f8kkel",
"latitude": "Breddegrad",
"longitude": "Lengdegrad",
"name": "Navn"
},
"description": "Hvis Breddegrad og Lengdegrad ikke er oppgitt, vil standardverdiene i Home Assistant-konfigurasjonen bli brukt. Det blir opprettet en enhet for hver prognosetype, men bare de du velger blir aktivert som standard."
}
}
},
"options": {
"step": {
"init": {
"data": {
"forecast_types": "Prognosetype(r)",
"timestep": "Min. mellom NowCast prognoser"
},
"description": "Hvis du velger \u00e5 aktivere \u00abnowcast\u00bb -varselenheten, kan du konfigurere antall minutter mellom hver prognose. Antall angitte prognoser avhenger av antall minutter som er valgt mellom prognosene.",
"title": "Oppdater ClimaCell Alternativer"
}
}
},
"title": "ClimaCell"
}
@@ -0,0 +1,34 @@
{
"config": {
"error": {
"cannot_connect": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f.",
"invalid_api_key": "\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 API.",
"rate_limited": "\u041f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043f\u044b\u0442\u043e\u043a, \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043f\u043e\u0437\u0436\u0435.",
"unknown": "\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430."
},
"step": {
"user": {
"data": {
"api_key": "\u041a\u043b\u044e\u0447 API",
"latitude": "\u0428\u0438\u0440\u043e\u0442\u0430",
"longitude": "\u0414\u043e\u043b\u0433\u043e\u0442\u0430",
"name": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435"
},
"description": "\u0415\u0441\u043b\u0438 \u0428\u0438\u0440\u043e\u0442\u0430 \u0438 \u0414\u043e\u043b\u0433\u043e\u0442\u0430 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u044b, \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Home Assistant. \u041e\u0431\u044a\u0435\u043a\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430, \u043d\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u0443\u0434\u0443\u0442 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0412\u0430\u043c\u0438."
}
}
},
"options": {
"step": {
"init": {
"data": {
"forecast_types": "\u0422\u0438\u043f(\u044b) \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430",
"timestep": "\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f (\u0432 \u043c\u0438\u043d\u0443\u0442\u0430\u0445)"
},
"description": "\u0415\u0441\u043b\u0438 \u0412\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 'nowcast', \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430.",
"title": "\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 ClimaCell"
}
}
},
"title": "ClimaCell"
}
@@ -0,0 +1,34 @@
{
"config": {
"error": {
"cannot_connect": "\u9023\u7dda\u5931\u6557",
"invalid_api_key": "API \u5bc6\u9470\u7121\u6548",
"rate_limited": "\u9054\u5230\u9650\u5236\u983b\u7387\u3001\u8acb\u7a0d\u5019\u518d\u8a66\u3002",
"unknown": "\u672a\u9810\u671f\u932f\u8aa4"
},
"step": {
"user": {
"data": {
"api_key": "API \u5bc6\u9470",
"latitude": "\u7def\u5ea6",
"longitude": "\u7d93\u5ea6",
"name": "\u540d\u7a31"
},
"description": "\u5047\u5982\u672a\u63d0\u4f9b\u7def\u5ea6\u8207\u7d93\u5ea6\uff0c\u5c07\u6703\u4f7f\u7528 Home Assistant \u8a2d\u5b9a\u4f5c\u70ba\u9810\u8a2d\u503c\u3002\u6bcf\u4e00\u500b\u9810\u5831\u985e\u578b\u90fd\u6703\u7522\u751f\u4e00\u7d44\u5be6\u9ad4\uff0c\u6216\u8005\u9810\u8a2d\u70ba\u6240\u9078\u64c7\u555f\u7528\u7684\u9810\u5831\u3002"
}
}
},
"options": {
"step": {
"init": {
"data": {
"forecast_types": "\u9810\u5831\u985e\u578b",
"timestep": "NowCast \u9810\u5831\u9593\u9694\u5206\u9418"
},
"description": "\u5047\u5982\u9078\u64c7\u958b\u555f `nowcast` \u9810\u5831\u5be6\u9ad4\u3001\u5c07\u53ef\u4ee5\u8a2d\u5b9a\u9810\u5831\u983b\u7387\u9593\u9694\u5206\u9418\u6578\u3002\u6839\u64da\u6240\u8f38\u5165\u7684\u9593\u9694\u6642\u9593\u5c07\u6c7a\u5b9a\u9810\u5831\u7684\u6578\u76ee\u3002",
"title": "\u66f4\u65b0 ClimaCell \u9078\u9805"
}
}
},
"title": "ClimaCell"
}
@@ -1,4 +1,5 @@
"""Weather component that handles meteorological data for your location."""
from datetime import datetime
import logging
from typing import Any, Callable, Dict, List, Optional
@@ -80,7 +81,7 @@ def _translate_condition(
def _forecast_dict(
hass: HomeAssistantType,
time: str,
forecast_dt: datetime,
use_datetime: bool,
condition: str,
precipitation: Optional[float],
@@ -92,10 +93,7 @@ def _forecast_dict(
) -> Dict[str, Any]:
"""Return formatted Forecast dict from ClimaCell forecast data."""
if use_datetime:
translated_condition = _translate_condition(
condition,
is_up(hass, dt_util.as_utc(dt_util.parse_datetime(time))),
)
translated_condition = _translate_condition(condition, is_up(hass, forecast_dt))
else:
translated_condition = _translate_condition(condition, True)
@@ -112,7 +110,7 @@ def _forecast_dict(
wind_speed = distance_convert(wind_speed, LENGTH_MILES, LENGTH_KILOMETERS)
data = {
ATTR_FORECAST_TIME: time,
ATTR_FORECAST_TIME: forecast_dt.isoformat(),
ATTR_FORECAST_CONDITION: translated_condition,
ATTR_FORECAST_PRECIPITATION: precipitation,
ATTR_FORECAST_PRECIPITATION_PROBABILITY: precipitation_probability,
@@ -246,7 +244,9 @@ class ClimaCellWeatherEntity(ClimaCellEntity, WeatherEntity):
# Set default values (in cases where keys don't exist), None will be
# returned. Override properties per forecast type as needed
for forecast in self.coordinator.data[FORECASTS][self.forecast_type]:
timestamp = self._get_cc_value(forecast, CC_ATTR_TIMESTAMP)
forecast_dt = dt_util.parse_datetime(
self._get_cc_value(forecast, CC_ATTR_TIMESTAMP)
)
use_datetime = True
condition = self._get_cc_value(forecast, CC_ATTR_CONDITION)
precipitation = self._get_cc_value(forecast, CC_ATTR_PRECIPITATION)
@@ -290,7 +290,7 @@ class ClimaCellWeatherEntity(ClimaCellEntity, WeatherEntity):
forecasts.append(
_forecast_dict(
self.hass,
timestamp,
forecast_dt,
use_datetime,
condition,
precipitation,
@@ -19,9 +19,9 @@
},
"user": {
"data": {
"api_token": "API \u5bc6\u9470"
"api_token": "API \u6b0a\u6756"
},
"description": "\u6b64\u6574\u5408\u9700\u8981\u5e33\u865f\u4e2d\u6240\u6709\u5340\u57df Zone:Zone:Read \u8207 Zone:DNS:Edit \u6b0a\u9650 API \u5bc6\u9470\u3002",
"description": "\u6b64\u6574\u5408\u9700\u8981\u5e33\u865f\u4e2d\u6240\u6709\u5340\u57df Zone:Zone:Read \u8207 Zone:DNS:Edit \u6b0a\u9650 API \u6b0a\u6756\u3002",
"title": "\u9023\u7dda\u81f3 Cloudflare"
},
"zone": {
@@ -6,7 +6,8 @@
"open": "Open {entity_name}",
"open_tilt": "Open de kanteling {entity_name}",
"set_position": "Stel de positie van {entity_name} in",
"set_tilt_position": "Stel de {entity_name} kantelpositie in"
"set_tilt_position": "Stel de {entity_name} kantelpositie in",
"stop": "Stop {entity_name}"
},
"condition_type": {
"is_closed": "{entity_name} is gesloten",
@@ -5,7 +5,9 @@
"cannot_connect": "Kon niet verbinden"
},
"error": {
"invalid_auth": "Ongeldige authenticatie"
"cannot_connect": "Kan geen verbinding maken",
"invalid_auth": "Ongeldige authenticatie",
"unknown": "Onverwachte fout"
},
"step": {
"user": {
+1 -1
View File
@@ -2,6 +2,6 @@
"domain": "doods",
"name": "DOODS - Dedicated Open Object Detection Service",
"documentation": "https://www.home-assistant.io/integrations/doods",
"requirements": ["pydoods==1.0.2", "pillow==8.1.0"],
"requirements": ["pydoods==1.0.2", "pillow==8.1.1"],
"codeowners": []
}
@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Ger\u00e4t ist bereits konfiguriert",
"cannot_connect": "Verbindung fehlgeschlagen",
"invalid_auth": "Ung\u00fcltige Authentifizierung"
},
"error": {
"cannot_connect": "Verbindung fehlgeschlagen",
"invalid_auth": "Ung\u00fcltige Authentifizierung"
},
"step": {
"user": {
"data": {
"email": "E-Mail",
"password": "Passwort"
}
}
}
}
}
@@ -0,0 +1,7 @@
{
"config": {
"abort": {
"single_instance_allowed": "Al geconfigureerd. Slechts een enkele configuratie mogelijk."
}
}
}
@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Aeroport ja est\u00e0 configurat."
},
"error": {
"cannot_connect": "Ha fallat la connexi\u00f3",
"invalid_airport": "Codi d'aeroport inv\u00e0lid",
"unknown": "Error inesperat"
},
"step": {
"user": {
"data": {
"id": "Aeroport"
},
"description": "Introdueix codi d'un aeroport dels EUA en format IATA",
"title": "FAA Delays"
}
}
}
}
@@ -0,0 +1,8 @@
{
"config": {
"error": {
"cannot_connect": "Nepoda\u0159ilo se p\u0159ipojit",
"unknown": "Neo\u010dek\u00e1van\u00e1 chyba"
}
}
}
@@ -0,0 +1,8 @@
{
"config": {
"error": {
"cannot_connect": "Verbindung fehlgeschlagen",
"unknown": "Unerwarteter Fehler"
}
}
}
@@ -4,16 +4,18 @@
"already_configured": "This airport is already configured."
},
"error": {
"invalid_airport": "Airport code is not valid"
"cannot_connect": "Failed to connect",
"invalid_airport": "Airport code is not valid",
"unknown": "Unexpected error"
},
"step": {
"user": {
"title": "FAA Delays",
"description": "Enter a US Airport Code in IATA Format",
"data": {
"id": "Airport"
}
},
"description": "Enter a US Airport Code in IATA Format",
"title": "FAA Delays"
}
}
}
}
}
@@ -0,0 +1,19 @@
{
"config": {
"abort": {
"already_configured": "Este aeropuerto ya est\u00e1 configurado."
},
"error": {
"invalid_airport": "El c\u00f3digo del aeropuerto no es v\u00e1lido"
},
"step": {
"user": {
"data": {
"id": "Aeropuerto"
},
"description": "Introduzca un c\u00f3digo de aeropuerto estadounidense en formato IATA",
"title": "Retrasos de la FAA"
}
}
}
}
@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "See lennujaam on juba seadistatud."
},
"error": {
"cannot_connect": "\u00dchendumine nurjus",
"invalid_airport": "Lennujaama kood ei sobi",
"unknown": "Ootamatu t\u00f5rge"
},
"step": {
"user": {
"data": {
"id": "Lennujaam"
},
"description": "Sisesta USA lennujaama kood IATA vormingus",
"title": ""
}
}
}
}
@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Cet a\u00e9roport est d\u00e9j\u00e0 configur\u00e9."
},
"error": {
"cannot_connect": "\u00c9chec de connexion",
"invalid_airport": "Le code de l'a\u00e9roport n'est pas valide",
"unknown": "Erreur inattendue"
},
"step": {
"user": {
"data": {
"id": "A\u00e9roport"
},
"description": "Entrez un code d'a\u00e9roport am\u00e9ricain au format IATA",
"title": "D\u00e9lais FAA"
}
}
}
}
@@ -0,0 +1,18 @@
{
"config": {
"abort": {
"already_configured": "\u05e0\u05de\u05dc \u05ea\u05e2\u05d5\u05e4\u05d4 \u05d6\u05d4 \u05db\u05d1\u05e8 \u05de\u05d5\u05d2\u05d3\u05e8"
},
"error": {
"cannot_connect": "\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05e0\u05db\u05e9\u05dc\u05d4",
"unknown": "\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05dc\u05ea\u05d9 \u05e6\u05e4\u05d5\u05d9\u05d4"
},
"step": {
"user": {
"data": {
"id": "\u05e0\u05de\u05dc \u05ea\u05e2\u05d5\u05e4\u05d4"
}
}
}
}
}
@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Questo aeroporto \u00e8 gi\u00e0 configurato."
},
"error": {
"cannot_connect": "Impossibile connettersi",
"invalid_airport": "Il codice dell'aeroporto non \u00e8 valido",
"unknown": "Errore imprevisto"
},
"step": {
"user": {
"data": {
"id": "Aeroporto"
},
"description": "Immettere un codice aeroporto statunitense in formato IATA",
"title": "Ritardi FAA"
}
}
}
}
@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Deze luchthaven is al geconfigureerd."
},
"error": {
"cannot_connect": "Kan geen verbinding maken",
"invalid_airport": "Luchthavencode is ongeldig",
"unknown": "Onverwachte fout"
},
"step": {
"user": {
"data": {
"id": "Luchthaven"
},
"description": "Voer een Amerikaanse luchthavencode in IATA-indeling in",
"title": "FAA-vertragingen"
}
}
}
}
@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "Denne flyplassen er allerede konfigurert"
},
"error": {
"cannot_connect": "Tilkobling mislyktes",
"invalid_airport": "Flyplasskoden er ikke gyldig",
"unknown": "Uventet feil"
},
"step": {
"user": {
"data": {
"id": "Flyplass"
},
"description": "Skriv inn en amerikansk flyplasskode i IATA-format",
"title": "FAA forsinkelser"
}
}
}
}
@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u0430 \u0443\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430."
},
"error": {
"cannot_connect": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f.",
"invalid_airport": "\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434 \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u0430.",
"unknown": "\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430."
},
"step": {
"user": {
"data": {
"id": "\u0410\u044d\u0440\u043e\u043f\u043e\u0440\u0442"
},
"description": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043e\u0434 \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442\u0430 \u0421\u0428\u0410 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 IATA.",
"title": "FAA Delays"
}
}
}
}
@@ -0,0 +1,21 @@
{
"config": {
"abort": {
"already_configured": "\u6b64\u6a5f\u5834\u5df2\u7d93\u8a2d\u5b9a\u5b8c\u6210"
},
"error": {
"cannot_connect": "\u9023\u7dda\u5931\u6557",
"invalid_airport": "\u6a5f\u5834\u4ee3\u78bc\u7121\u6548",
"unknown": "\u672a\u9810\u671f\u932f\u8aa4"
},
"step": {
"user": {
"data": {
"id": "\u6a5f\u5834"
},
"description": "\u8f38\u5165\u7f8e\u570b\u6a5f\u5834 IATA \u4ee3\u78bc",
"title": "FAA \u822a\u73ed\u5ef6\u8aa4"
}
}
}
}
@@ -14,7 +14,8 @@
"reauth": {
"data": {
"password": "Wachtwoord"
}
},
"description": "Authenticatietokens zijn ongeldig geworden, log in om ze opnieuw te maken."
},
"user": {
"data": {
@@ -15,7 +15,7 @@
"data": {
"password": "Passord"
},
"description": "Godkjenningstokener ble ugyldige, logg inn for \u00e5 gjenopprette dem"
"description": "Autentiseringstokener ble ugyldige, logg inn for \u00e5 gjenskape dem."
},
"user": {
"data": {
@@ -15,7 +15,7 @@
"data": {
"password": "\u5bc6\u78bc"
},
"description": "\u8a8d\u8b49\u5bc6\u9470\u5df2\u7d93\u5931\u6548\uff0c\u8acb\u767b\u5165\u91cd\u65b0\u65b0\u589e\u3002"
"description": "\u8a8d\u8b49\u6b0a\u6756\u5df2\u7d93\u5931\u6548\uff0c\u8acb\u767b\u5165\u91cd\u65b0\u65b0\u589e\u3002"
},
"user": {
"data": {
@@ -0,0 +1,7 @@
{
"config": {
"abort": {
"cannot_connect": "Kan geen verbinding maken"
}
}
}
@@ -3,6 +3,9 @@
"abort": {
"already_configured": "Deze co\u00f6rdinaten zijn al geregistreerd."
},
"error": {
"unknown": "Onverwachte fout"
},
"step": {
"user": {
"data": {
@@ -24,7 +24,7 @@
"password": "Passwort",
"username": "Benutzername"
},
"description": "Aktualisiere deine Anmeldeinformationen f\u00fcr {name} ."
"description": "Aktualisiere deine Anmeldeinformationen f\u00fcr {name}."
},
"user": {
"data": {
@@ -3,6 +3,7 @@
"abort": {
"already_configured": "Deze AVM FRITZ!Box is al geconfigureerd.",
"already_in_progress": "AVM FRITZ!Box configuratie is al bezig.",
"no_devices_found": "Geen apparaten gevonden op het netwerk",
"not_supported": "Verbonden met AVM FRITZ! Box, maar het kan geen Smart Home-apparaten bedienen.",
"reauth_successful": "Herauthenticatie was succesvol"
},
@@ -3,7 +3,7 @@
"name": "Home Assistant Frontend",
"documentation": "https://www.home-assistant.io/integrations/frontend",
"requirements": [
"home-assistant-frontend==20210224.0"
"home-assistant-frontend==20210302.0"
],
"dependencies": [
"api",
+13 -6
View File
@@ -228,18 +228,25 @@ class GitHubData:
self.stargazers = repo.stargazers_count
self.forks = repo.forks_count
open_issues = repo.get_issues(state="open", sort="created")
if open_issues is not None:
self.open_issue_count = open_issues.totalCount
if open_issues.totalCount > 0:
self.latest_open_issue_url = open_issues[0].html_url
open_pull_requests = repo.get_pulls(state="open", sort="created")
if open_pull_requests is not None:
self.pull_request_count = open_pull_requests.totalCount
if open_pull_requests.totalCount > 0:
self.latest_open_pr_url = open_pull_requests[0].html_url
open_issues = repo.get_issues(state="open", sort="created")
if open_issues is not None:
if self.pull_request_count is None:
self.open_issue_count = open_issues.totalCount
else:
# pull requests are treated as issues too so we need to reduce the received count
self.open_issue_count = (
open_issues.totalCount - self.pull_request_count
)
if open_issues.totalCount > 0:
self.latest_open_issue_url = open_issues[0].html_url
latest_commit = repo.get_commits()[0]
self.latest_commit_sha = latest_commit.sha
self.latest_commit_message = latest_commit.commit.message
@@ -11,6 +11,7 @@
"step": {
"user": {
"data": {
"host": "Host",
"name": "Naam"
},
"description": "Eerst moet u de Goal Zero-app downloaden: https://www.goalzero.com/product-features/yeti-app/ \n\n Volg de instructies om je Yeti te verbinden met je wifi-netwerk. Haal dan de host-ip van uw router. DHCP moet zijn ingesteld in uw routerinstellingen voor het apparaat om ervoor te zorgen dat het host-ip niet verandert. Raadpleeg de gebruikershandleiding van uw router."
@@ -15,7 +15,7 @@
"username": "Gebruikersnaam"
},
"description": "Geef hieronder de vereiste informatie op.",
"title": "Stel GogoGate2 in"
"title": "Stel GogoGate2 of iSmartGate in"
}
}
}
@@ -0,0 +1,17 @@
{
"config": {
"error": {
"invalid_credentials": "Ung\u00fcltige Authentifizierung",
"unknown": "Unerwarteter Fehler"
},
"step": {
"user": {
"data": {
"api_key": "API-Schl\u00fcssel",
"url": "URL"
}
}
}
},
"title": "Habitica"
}
+17 -11
View File
@@ -22,17 +22,8 @@ class HarmonyData(HarmonySubscriberMixin):
self._name = name
self._unique_id = unique_id
self._available = False
callbacks = {
"config_updated": self._config_updated,
"connect": self._connected,
"disconnect": self._disconnected,
"new_activity_starting": self._activity_starting,
"new_activity": self._activity_started,
}
self._client = HarmonyClient(
ip_address=address, callbacks=ClientCallbackType(**callbacks)
)
self._client = None
self._address = address
@property
def activities(self):
@@ -105,6 +96,18 @@ class HarmonyData(HarmonySubscriberMixin):
async def connect(self) -> bool:
"""Connect to the Harmony Hub."""
_LOGGER.debug("%s: Connecting", self._name)
callbacks = {
"config_updated": self._config_updated,
"connect": self._connected,
"disconnect": self._disconnected,
"new_activity_starting": self._activity_starting,
"new_activity": self._activity_started,
}
self._client = HarmonyClient(
ip_address=self._address, callbacks=ClientCallbackType(**callbacks)
)
try:
if not await self._client.connect():
_LOGGER.warning("%s: Unable to connect to HUB", self._name)
@@ -113,6 +116,7 @@ class HarmonyData(HarmonySubscriberMixin):
except aioexc.TimeOut:
_LOGGER.warning("%s: Connection timed-out", self._name)
return False
return True
async def shutdown(self):
@@ -159,10 +163,12 @@ class HarmonyData(HarmonySubscriberMixin):
)
return
await self.async_lock_start_activity()
try:
await self._client.start_activity(activity_id)
except aioexc.TimeOut:
_LOGGER.error("%s: Starting activity %s timed-out", self.name, activity)
self.async_unlock_start_activity()
async def async_power_off(self):
"""Start the PowerOff activity."""
@@ -1,5 +1,6 @@
"""Mixin class for handling harmony callback subscriptions."""
import asyncio
import logging
from typing import Any, Callable, NamedTuple, Optional
@@ -29,6 +30,17 @@ class HarmonySubscriberMixin:
super().__init__()
self._hass = hass
self._subscriptions = []
self._activity_lock = asyncio.Lock()
async def async_lock_start_activity(self):
"""Acquire the lock."""
await self._activity_lock.acquire()
@callback
def async_unlock_start_activity(self):
"""Release the lock."""
if self._activity_lock.locked():
self._activity_lock.release()
@callback
def async_subscribe(self, update_callbacks: HarmonyCallback) -> Callable:
@@ -51,11 +63,13 @@ class HarmonySubscriberMixin:
def _connected(self, _=None) -> None:
_LOGGER.debug("connected")
self.async_unlock_start_activity()
self._available = True
self._call_callbacks("connected")
def _disconnected(self, _=None) -> None:
_LOGGER.debug("disconnected")
self.async_unlock_start_activity()
self._available = False
self._call_callbacks("disconnected")
@@ -65,6 +79,7 @@ class HarmonySubscriberMixin:
def _activity_started(self, activity_info: tuple) -> None:
_LOGGER.debug("activity %s started", activity_info)
self.async_unlock_start_activity()
self._call_callbacks("activity_started", activity_info)
def _call_callbacks(self, callback_func_name: str, argument: tuple = None):
@@ -169,6 +169,18 @@ async def async_uninstall_addon(hass: HomeAssistantType, slug: str) -> dict:
return await hassio.send_command(command, timeout=60)
@bind_hass
@api_data
async def async_update_addon(hass: HomeAssistantType, slug: str) -> dict:
"""Update add-on.
The caller of the function should handle HassioAPIError.
"""
hassio = hass.data[DOMAIN]
command = f"/addons/{slug}/update"
return await hassio.send_command(command, timeout=None)
@bind_hass
@api_data
async def async_start_addon(hass: HomeAssistantType, slug: str) -> dict:
@@ -218,6 +230,21 @@ async def async_get_addon_discovery_info(
return next((addon for addon in discovered_addons if addon["addon"] == slug), None)
@bind_hass
@api_data
async def async_create_snapshot(
hass: HomeAssistantType, payload: dict, partial: bool = False
) -> dict:
"""Create a full or partial snapshot.
The caller of the function should handle HassioAPIError.
"""
hassio = hass.data[DOMAIN]
snapshot_type = "partial" if partial else "full"
command = f"/snapshots/new/{snapshot_type}"
return await hassio.send_command(command, payload=payload, timeout=None)
@callback
@bind_hass
def get_info(hass):
@@ -4,6 +4,7 @@
"already_configured": "Apparaat is al geconfigureerd"
},
"error": {
"cannot_connect": "Kan geen verbinding maken",
"invalid_auth": "Ongeldige authenticatie",
"unknown": "Onverwachte fout"
},
@@ -1,7 +1,8 @@
{
"config": {
"abort": {
"missing_configuration": "Het component is niet geconfigureerd. Volg de documentatie."
"missing_configuration": "Het component is niet geconfigureerd. Volg de documentatie.",
"no_url_available": "Geen URL beschikbaar. Voor informatie over deze fout, [check de helpsectie]({docs_url})"
},
"create_entry": {
"default": "Succesvol geverifieerd"
+5 -2
View File
@@ -491,8 +491,11 @@ class HomeKit:
# as pyhap uses a random one until state is restored
if os.path.exists(persist_file):
self.driver.load()
else:
self.driver.persist()
self.driver.state.config_version += 1
if self.driver.state.config_version > 65535:
self.driver.state.config_version = 1
self.driver.persist()
def reset_accessories(self, entity_ids):
"""Reset the accessory to load the latest configuration."""
@@ -3,7 +3,7 @@
"name": "HomeKit",
"documentation": "https://www.home-assistant.io/integrations/homekit",
"requirements": [
"HAP-python==3.3.0",
"HAP-python==3.3.2",
"fnvhash==0.1.0",
"PyQRCode==1.2.1",
"base36==0.1.1",
@@ -19,7 +19,7 @@
"title": "Selecciona els dominis a incloure"
},
"pairing": {
"description": "Tan aviat com {name} estigui llest, la vinculaci\u00f3 estar\u00e0 disponible a \"Notificacions\" com a \"Configuraci\u00f3 de l'enlla\u00e7 HomeKit\".",
"description": "Per completar la vinculaci\u00f3, segueix les instruccions a \"Configuraci\u00f3 de l'enlla\u00e7 HomeKit\" sota \"Notificacions\".",
"title": "Vinculaci\u00f3 HomeKit"
},
"user": {
@@ -28,8 +28,8 @@
"include_domains": "Dominis a incloure",
"mode": "Mode"
},
"description": "La integraci\u00f3 HomeKit et permetr\u00e0 l'acc\u00e9s a les teves entitats de Home Assistant a HomeKit. En mode enlla\u00e7, els enlla\u00e7os HomeKit estan limitats a un m\u00e0xim de 150 accessoris per inst\u00e0ncia (incl\u00f2s el propi enlla\u00e7). Si volguessis enlla\u00e7ar m\u00e9s accessoris que el m\u00e0xim perm\u00e8s, \u00e9s recomanable que utilitzis diferents enlla\u00e7os HomeKit per a dominis diferents. La configuraci\u00f3 avan\u00e7ada d'entitat nom\u00e9s est\u00e0 disponible en YAML. Per obtenir el millor rendiment i evitar errors de disponibilitat inesperats , crea i vincula una inst\u00e0ncia HomeKit en mode accessori per a cada repoductor multim\u00e8dia/TV i c\u00e0mera.",
"title": "Activaci\u00f3 de HomeKit"
"description": "Selecciona els dominis a incloure. S'inclouran totes les entitats del domini compatibles. Es crear\u00e0 una inst\u00e0ncia HomeKit en mode accessori per a cada repoductor multim\u00e8dia/TV i c\u00e0mera.",
"title": "Selecciona els dominis a incloure"
}
}
},
@@ -55,7 +55,7 @@
"entities": "Entitats",
"mode": "Mode"
},
"description": "Tria les entitats que vulguis incloure. En mode accessori, nom\u00e9s s'inclou una sola entitat. En mode enlla\u00e7 inclusiu, s'exposaran totes les entitats del domini tret de que se'n seleccionin algunes en concret. En mode enlla\u00e7 excusiu, s'inclouran totes les entitats del domini excepte les entitats excloses. Per obtenir el millor rendiment i evitar errors de disponibilitat inesperats , crea i vincula una inst\u00e0ncia HomeKit en mode accessori per a cada repoductor multim\u00e8dia/TV i c\u00e0mera.",
"description": "Tria les entitats que vulguis incloure. En mode accessori, nom\u00e9s s'inclou una sola entitat. En mode enlla\u00e7 inclusiu, s'exposaran totes les entitats del domini tret de que se'n seleccionin algunes en concret. En mode enlla\u00e7 excusiu, s'inclouran totes les entitats del domini excepte les entitats excloses. Per obtenir el millor rendiment, es crea una inst\u00e0ncia HomeKit per a cada repoductor multim\u00e8dia/TV i c\u00e0mera.",
"title": "Selecciona les entitats a incloure"
},
"init": {
@@ -17,7 +17,7 @@
"include_domains": "Dom\u00e9ny, kter\u00e9 maj\u00ed b\u00fdt zahrnuty",
"mode": "Re\u017eim"
},
"title": "Aktivace HomeKit"
"title": "Vyberte dom\u00e9ny, kter\u00e9 chcete zahrnout"
}
}
},
@@ -4,13 +4,29 @@
"port_name_in_use": "An accessory or bridge with the same name or port is already configured."
},
"step": {
"accessory_mode": {
"data": {
"entity_id": "Entity"
},
"description": "Choose the entity to be included. In accessory mode, only a single entity is included.",
"title": "Select entity to be included"
},
"bridge_mode": {
"data": {
"include_domains": "Domains to include"
},
"description": "Choose the domains to be included. All supported entities in the domain will be included.",
"title": "Select domains to be included"
},
"pairing": {
"description": "To complete pairing following the instructions in \u201cNotifications\u201d under \u201cHomeKit Pairing\u201d.",
"title": "Pair HomeKit"
},
"user": {
"data": {
"include_domains": "Domains to include"
"auto_start": "Autostart (disable if using Z-Wave or other delayed start system)",
"include_domains": "Domains to include",
"mode": "Mode"
},
"description": "Choose the domains to be included. All supported entities in the domain will be included. A separate HomeKit instance in accessory mode will be created for each tv media player and camera.",
"title": "Select domains to be included"
@@ -21,7 +37,8 @@
"step": {
"advanced": {
"data": {
"auto_start": "Autostart (disable if you are calling the homekit.start service manually)"
"auto_start": "Autostart (disable if you are calling the homekit.start service manually)",
"safe_mode": "Safe Mode (enable only if pairing fails)"
},
"description": "These settings only need to be adjusted if HomeKit is not functional.",
"title": "Advanced Configuration"
@@ -19,7 +19,7 @@
"title": "Vali kaasatavad domeenid"
},
"pairing": {
"description": "Niipea kui {name} on valmis, on sidumine saadaval jaotises \"Notifications\" kui \"HomeKit Bridge Setup\".",
"description": "Sidumise l\u00f5puleviimiseks j\u00e4rgi jaotises \"HomeKiti sidumine\" toodud juhiseid alajaotises \"Teatised\".",
"title": "HomeKiti sidumine"
},
"user": {
@@ -28,8 +28,8 @@
"include_domains": "Kaasatavad domeenid",
"mode": "Re\u017eiim"
},
"description": "HomeKiti integreerimine v\u00f5imaldab teil p\u00e4\u00e4seda juurde HomeKiti \u00fcksustele Home Assistant. Sildire\u017eiimis on HomeKit Bridges piiratud 150 lisaseadmega, sealhulgas sild ise. Kui soovid \u00fchendada rohkem lisatarvikuid, on soovitatav kasutada erinevate domeenide jaoks mitut HomeKiti silda. \u00dcksuse \u00fcksikasjalik konfiguratsioon on esmase silla jaoks saadaval ainult YAML-i kaudu. Parema tulemuse saavutamiseks ja ootamatute seadmete kadumise v\u00e4ltimiseks loo ja seo eraldi HomeKiti seade tarviku re\u017eiimis kga meediaesitaja ja kaamera jaoks.",
"title": "Aktiveeri HomeKit"
"description": "Vali kaasatavad domeenid. Kaasatakse k\u00f5ik domeenis toetatud olemid. Iga telemeedia pleieri ja kaamera jaoks luuakse eraldi HomeKiti eksemplar tarvikure\u017eiimis.",
"title": "Vali kaasatavad domeenid"
}
}
},
@@ -55,12 +55,12 @@
"entities": "Olemid",
"mode": "Re\u017eiim"
},
"description": "Vali kaasatavad olemid. Tarvikute re\u017eiimis on kaasatav ainult \u00fcks olem. Silla re\u017eiimis, kuvatakse k\u00f5ik domeeni olemid, v\u00e4lja arvatud juhul, kui valitud on kindlad olemid. Silla v\u00e4listamisre\u017eiimis kaasatakse k\u00f5ik domeeni olemid, v\u00e4lja arvatud v\u00e4listatud olemid.",
"description": "Vali kaasatavad olemid. Tarvikute re\u017eiimis on kaasatav ainult \u00fcks olem. Silla re\u017eiimis, kuvatakse k\u00f5ik domeeni olemid, v\u00e4lja arvatud juhul, kui valitud on kindlad olemid. Silla v\u00e4listamisre\u017eiimis kaasatakse k\u00f5ik domeeni olemid, v\u00e4lja arvatud v\u00e4listatud olemid. Parima kasutuskogemuse jaoks on eraldi HomeKit seadmed iga meediumim\u00e4ngija ja kaamera jaoks.",
"title": "Vali kaasatavd olemid"
},
"init": {
"data": {
"include_domains": "Kaasatavad domeenid",
"include_domains": "Kaasatud domeenid",
"mode": "Re\u017eiim"
},
"description": "HomeKiti saab seadistada silla v\u00f5i \u00fche lisaseadme avaldamiseks. Lisare\u017eiimis saab kasutada ainult \u00fchte \u00fcksust. Teleriseadmete klassiga meediumipleierite n\u00f5uetekohaseks toimimiseks on vaja lisare\u017eiimi. \u201eKaasatavate domeenide\u201d \u00fcksused puutuvad kokku HomeKitiga. J\u00e4rgmisel ekraanil saad valida, millised \u00fcksused sellesse loendisse lisada v\u00f5i sellest v\u00e4lja j\u00e4tta.",
@@ -19,7 +19,7 @@
"title": "S\u00e9lectionnez les domaines \u00e0 inclure"
},
"pairing": {
"description": "D\u00e8s que le pont {name} est pr\u00eat, l'appairage sera disponible dans \"Notifications\" sous \"Configuration de la Passerelle HomeKit\".",
"description": "Pour compl\u00e9ter l'appariement, suivez les instructions dans les \"Notifications\" sous \"Appariement HomeKit\".",
"title": "Appairage de la Passerelle Homekit"
},
"user": {
@@ -28,8 +28,8 @@
"include_domains": "Domaines \u00e0 inclure",
"mode": "Mode"
},
"description": "La passerelle HomeKit vous permettra d'acc\u00e9der \u00e0 vos entit\u00e9s Home Assistant dans HomeKit. Les passerelles HomeKit sont limit\u00e9es \u00e0 150 accessoires par instance, y compris la passerelle elle-m\u00eame. Si vous souhaitez connecter plus que le nombre maximum d'accessoires, il est recommand\u00e9 d'utiliser plusieurs passerelles HomeKit pour diff\u00e9rents domaines. La configuration d\u00e9taill\u00e9e des entit\u00e9s est uniquement disponible via YAML pour la passerelle principale.",
"title": "Activer la Passerelle HomeKit"
"description": "Choisissez les domaines \u00e0 inclure. Toutes les entit\u00e9s prises en charge dans le domaine seront incluses. Une instance HomeKit distincte en mode accessoire sera cr\u00e9\u00e9e pour chaque lecteur multim\u00e9dia TV et cam\u00e9ra.",
"title": "S\u00e9lectionnez les domaines \u00e0 inclure"
}
}
},
@@ -60,7 +60,7 @@
},
"init": {
"data": {
"include_domains": "Domaine \u00e0 inclure",
"include_domains": "Domaines \u00e0 inclure",
"mode": "Mode"
},
"description": "Les entit\u00e9s des \u00abdomaines \u00e0 inclure\u00bb seront pont\u00e9es vers HomeKit. Vous pourrez s\u00e9lectionner les entit\u00e9s \u00e0 exclure de cette liste sur l'\u00e9cran suivant.",
@@ -1,6 +1,16 @@
{
"options": {
"step": {
"include_exclude": {
"data": {
"mode": "\u05de\u05e6\u05d1"
}
},
"init": {
"data": {
"mode": "\u05de\u05e6\u05d1"
}
},
"yaml": {
"description": "\u05d9\u05e9\u05d5\u05ea \u05d6\u05d5 \u05e0\u05e9\u05dc\u05d8\u05ea \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea YAML"
}
@@ -19,7 +19,7 @@
"title": "Seleziona i domini da includere"
},
"pairing": {
"description": "Non appena il {name} \u00e8 pronto, l'associazione sar\u00e0 disponibile in \"Notifiche\" come \"Configurazione HomeKit Bridge\".",
"description": "Per completare l'associazione, seguire le istruzioni in \"Notifiche\" sotto \"Associazione HomeKit\".",
"title": "Associa HomeKit"
},
"user": {
@@ -28,8 +28,8 @@
"include_domains": "Domini da includere",
"mode": "Modalit\u00e0"
},
"description": "L'integrazione di HomeKit ti consentir\u00e0 di accedere alle entit\u00e0 di Home Assistant in HomeKit. In modalit\u00e0 bridge, i bridge HomeKit sono limitati a 150 accessori per istanza, incluso il bridge stesso. Se desideri eseguire il bridge di un numero di accessori superiore a quello massimo, si consiglia di utilizzare pi\u00f9 bridge HomeKit per domini diversi. La configurazione dettagliata dell'entit\u00e0 \u00e8 disponibile solo tramite YAML per il bridge principale.",
"title": "Attiva HomeKit"
"description": "Scegli i domini da includere. Verranno incluse tutte le entit\u00e0 supportate nel dominio. Verr\u00e0 creata un'istanza HomeKit separata in modalit\u00e0 accessorio per ogni lettore multimediale TV e telecamera.",
"title": "Seleziona i domini da includere"
}
}
},
@@ -55,7 +55,7 @@
"entities": "Entit\u00e0",
"mode": "Modalit\u00e0"
},
"description": "Scegliere le entit\u00e0 da includere. In modalit\u00e0 accessorio, \u00e8 inclusa una sola entit\u00e0. In modalit\u00e0 di inclusione bridge, tutte le entit\u00e0 nel dominio saranno incluse, a meno che non siano selezionate entit\u00e0 specifiche. In modalit\u00e0 di esclusione bridge, tutte le entit\u00e0 nel dominio saranno incluse, ad eccezione delle entit\u00e0 escluse. Per prestazioni ottimali e per evitare una indisponibilit\u00e0 imprevista, creare e associare un'istanza HomeKit separata in modalit\u00e0 accessorio per ogni lettore multimediale, TV e videocamera.",
"description": "Scegliere le entit\u00e0 da includere. In modalit\u00e0 accessorio, \u00e8 inclusa una sola entit\u00e0. In modalit\u00e0 di inclusione bridge, tutte le entit\u00e0 nel dominio saranno incluse, a meno che non siano selezionate entit\u00e0 specifiche. In modalit\u00e0 di esclusione bridge, tutte le entit\u00e0 nel dominio saranno incluse, ad eccezione delle entit\u00e0 escluse. Per prestazioni ottimali, ci sar\u00e0 una HomeKit separata in modalit\u00e0 accessorio per ogni lettore multimediale, TV e videocamera.",
"title": "Seleziona le entit\u00e0 da includere"
},
"init": {
@@ -11,7 +11,7 @@
},
"pairing": {
"description": "Zodra de {name} klaar is, is het koppelen beschikbaar in \"Meldingen\" als \"HomeKit Bridge Setup\".",
"title": "Koppel HomeKit Bridge"
"title": "Koppel HomeKit"
},
"user": {
"data": {
@@ -20,7 +20,7 @@
"mode": "Mode"
},
"description": "De HomeKit-integratie geeft u toegang tot uw Home Assistant-entiteiten in HomeKit. In bridge-modus zijn HomeKit-bruggen beperkt tot 150 accessoires per exemplaar, inclusief de brug zelf. Als u meer dan het maximale aantal accessoires wilt overbruggen, is het aan te raden om meerdere HomeKit-bridges voor verschillende domeinen te gebruiken. Gedetailleerde entiteitsconfiguratie is alleen beschikbaar via YAML voor de primaire bridge.",
"title": "Activeer HomeKit Bridge"
"title": "Selecteer domeinen die u wilt opnemen"
}
}
},
@@ -57,7 +57,7 @@
},
"yaml": {
"description": "Deze invoer wordt beheerd via YAML",
"title": "Pas de HomeKit Bridge-opties aan"
"title": "Pas de HomeKit-opties aan"
}
}
}
@@ -19,7 +19,7 @@
"title": "Velg domener som skal inkluderes"
},
"pairing": {
"description": "S\u00e5 snart {name} er klart, vil sammenkobling v\u00e6re tilgjengelig i \"Notifications\" som \"HomeKit Bridge Setup\".",
"description": "For \u00e5 fullf\u00f8re sammenkoblingen ved \u00e5 f\u00f8lge instruksjonene i \"Varsler\" under \"Sammenkobling av HomeKit\".",
"title": "Koble sammen HomeKit"
},
"user": {
@@ -28,8 +28,8 @@
"include_domains": "Domener \u00e5 inkludere",
"mode": "Modus"
},
"description": "HomeKit-integrasjonen gir deg tilgang til Home Assistant-enhetene dine i HomeKit. I bromodus er HomeKit Bridges begrenset til 150 tilbeh\u00f8r per forekomst inkludert selve broen. Hvis du \u00f8nsker \u00e5 bygge bro over maksimalt antall tilbeh\u00f8r, anbefales det at du bruker flere HomeKit-broer for forskjellige domener. Detaljert enhetskonfigurasjon er bare tilgjengelig via YAML. For best ytelse og for \u00e5 forhindre uventet utilgjengelighet, opprett og par sammen en egen HomeKit-forekomst i tilbeh\u00f8rsmodus for hver tv-mediaspiller og kamera.",
"title": "Aktiver HomeKit"
"description": "Velg domenene som skal inkluderes. Alle st\u00f8ttede enheter i domenet vil bli inkludert. Det opprettes en egen HomeKit-forekomst i tilbeh\u00f8rsmodus for hver tv-mediaspiller og kamera.",
"title": "Velg domener som skal inkluderes"
}
}
},
@@ -55,7 +55,7 @@
"entities": "Entiteter",
"mode": "Modus"
},
"description": "Velg enhetene som skal inkluderes. I tilbeh\u00f8rsmodus er bare \u00e9n enkelt enhet inkludert. I bridge include-modus inkluderes alle enheter i domenet med mindre bestemte enheter er valgt. I brounnlatingsmodus inkluderes alle enheter i domenet, med unntak av de utelatte enhetene. For best mulig ytelse, og for \u00e5 forhindre uventet utilgjengelighet, opprett og par en separat HomeKit-forekomst i tilbeh\u00f8rsmodus for hver tv-mediespiller og kamera.",
"description": "Velg enhetene som skal inkluderes. I tilbeh\u00f8rsmodus er bare en enkelt enhet inkludert. I bridge-inkluderingsmodus vil alle enheter i domenet bli inkludert, med mindre spesifikke enheter er valgt. I bridge-ekskluderingsmodus vil alle enheter i domenet bli inkludert, bortsett fra de ekskluderte enhetene. For best ytelse vil et eget HomeKit-tilbeh\u00f8r v\u00e6re TV-mediaspiller og kamera.",
"title": "Velg enheter som skal inkluderes"
},
"init": {
@@ -19,7 +19,7 @@
"title": "Wybierz uwzgl\u0119dniane domeny"
},
"pairing": {
"description": "Gdy tylko {name} b\u0119dzie gotowy, opcja parowania b\u0119dzie dost\u0119pna w \u201ePowiadomieniach\u201d jako \u201eKonfiguracja mostka HomeKit\u201d.",
"description": "Aby doko\u0144czy\u0107 parowanie, post\u0119puj wg instrukcji \u201eParowanie HomeKit\u201d w \u201ePowiadomieniach\u201d.",
"title": "Parowanie z HomeKit"
},
"user": {
@@ -28,8 +28,8 @@
"include_domains": "Domeny do uwzgl\u0119dnienia",
"mode": "Tryb"
},
"description": "Integracja HomeKit pozwala na dost\u0119p do Twoich encji Home Assistant w HomeKit. W trybie \"Mostka\", mostki HomeKit s\u0105 ograniczone do 150 urz\u0105dze\u0144, w\u0142\u0105czaj\u0105c w to sam mostek. Je\u015bli chcesz wi\u0119cej ni\u017c dozwolona maksymalna liczba urz\u0105dze\u0144, zaleca si\u0119 u\u017cywanie wielu most\u00f3w HomeKit dla r\u00f3\u017cnych domen. Szczeg\u00f3\u0142owa konfiguracja encji jest dost\u0119pna tylko w trybie YAML dla g\u0142\u00f3wnego mostka. Dla najlepszej wydajno\u015bci oraz by zapobiec nieprzewidzianej niedost\u0119pno\u015bci urz\u0105dzenia, utw\u00f3rz i sparuj oddzieln\u0105 instancj\u0119 HomeKit w trybie akcesorium dla ka\u017cdego media playera oraz kamery.",
"title": "Aktywacja HomeKit"
"description": "Wybierz domeny do uwzgl\u0119dnienia. Wszystkie wspierane encje w danej domenie b\u0119d\u0105 uwzgl\u0119dnione. W trybie akcesorium, oddzielna instancja HomeKit zostanie utworzona dla ka\u017cdego tv media playera oraz kamery.",
"title": "Wybierz uwzgl\u0119dniane domeny"
}
}
},
@@ -55,7 +55,7 @@
"entities": "Encje",
"mode": "Tryb"
},
"description": "Wybierz encje, kt\u00f3re maj\u0105 by\u0107 uwzgl\u0119dnione. W trybie \"Akcesorium\" tylko jedna encja jest uwzgl\u0119dniona. W trybie \"Uwzgl\u0119dnij mostek\", wszystkie encje w danej domenie b\u0119d\u0105 uwzgl\u0119dnione, chyba \u017ce wybrane s\u0105 tylko konkretne encje. W trybie \"Wyklucz mostek\", wszystkie encje b\u0119d\u0105 uwzgl\u0119dnione, z wyj\u0105tkiem tych wybranych. Dla najlepszej wydajno\u015bci oraz by zapobiec nieprzewidzianej niedost\u0119pno\u015bci urz\u0105dzenia, utw\u00f3rz i sparuj oddzieln\u0105 instancj\u0119 HomeKit w trybie akcesorium dla ka\u017cdego media playera oraz kamery.",
"description": "Wybierz encje, kt\u00f3re maj\u0105 by\u0107 uwzgl\u0119dnione. W trybie \"Akcesorium\" tylko jedna encja jest uwzgl\u0119dniona. W trybie \"Uwzgl\u0119dnij mostek\", wszystkie encje w danej domenie b\u0119d\u0105 uwzgl\u0119dnione, chyba \u017ce wybrane s\u0105 tylko konkretne encje. W trybie \"Wyklucz mostek\", wszystkie encje b\u0119d\u0105 uwzgl\u0119dnione, z wyj\u0105tkiem tych wybranych. Dla najlepszej wydajno\u015bci, zostanie utworzone oddzielne akcesorium HomeKit dla ka\u017cdego tv media playera oraz kamery.",
"title": "Wybierz encje, kt\u00f3re maj\u0105 by\u0107 uwzgl\u0119dnione"
},
"init": {
@@ -19,7 +19,7 @@
"title": "\u0412\u044b\u0431\u043e\u0440 \u0434\u043e\u043c\u0435\u043d\u043e\u0432 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 HomeKit"
},
"pairing": {
"description": "\u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e {name} \u0431\u0443\u0434\u0435\u0442 \u0433\u043e\u0442\u043e\u0432\u043e, \u0441\u043e\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0432 \"\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f\u0445\" \u043a\u0430\u043a \"HomeKit Bridge Setup\".",
"description": "\u0414\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0441\u043e\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u0439\u0442\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u0432 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0438 \"HomeKit Pairing\".",
"title": "\u0421\u043e\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u0441 HomeKit"
},
"user": {
@@ -28,8 +28,8 @@
"include_domains": "\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u043e\u043c\u0435\u043d\u044b",
"mode": "\u0420\u0435\u0436\u0438\u043c"
},
"description": "\u042d\u0442\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c Home Assistant \u0447\u0435\u0440\u0435\u0437 HomeKit. HomeKit Bridge \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d 150 \u0430\u043a\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u0430\u043c\u0438 \u043d\u0430 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u0430\u043c \u0431\u0440\u0438\u0434\u0436. \u0415\u0441\u043b\u0438 \u0412\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e HomeKit Bridge \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u043e\u043c\u0435\u043d\u043e\u0432. \u0414\u0435\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 YAML. \u0414\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0430\u043a\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043c\u0435\u0434\u0438\u0430\u043f\u043b\u0435\u0435\u0440\u0430 \u0438\u043b\u0438 \u043a\u0430\u043c\u0435\u0440\u044b.",
"title": "HomeKit"
"description": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u043e\u043c\u0435\u043d\u044b. \u0411\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u044b \u0432\u0441\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0437 \u0434\u043e\u043c\u0435\u043d\u0430. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043c\u0435\u0434\u0438\u0430\u043f\u043b\u0435\u0435\u0440\u0430 \u0438\u043b\u0438 \u043a\u0430\u043c\u0435\u0440\u044b \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0430\u043a\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u0430.",
"title": "\u0412\u044b\u0431\u043e\u0440 \u0434\u043e\u043c\u0435\u043d\u043e\u0432 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 HomeKit"
}
}
},
@@ -55,7 +55,7 @@
"entities": "\u041e\u0431\u044a\u0435\u043a\u0442\u044b",
"mode": "\u0420\u0435\u0436\u0438\u043c"
},
"description": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 HomeKit. \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u0430\u043a\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442. \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u043c\u043e\u0441\u0442\u0430 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u044b \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u0435 \u0434\u043e\u043c\u0435\u043d\u0443, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b. \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u044b \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u0435 \u0434\u043e\u043c\u0435\u043d\u0443, \u043a\u0440\u043e\u043c\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0445. \u0414\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0430\u043a\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043c\u0435\u0434\u0438\u0430\u043f\u043b\u0435\u0435\u0440\u0430 \u0438\u043b\u0438 \u043a\u0430\u043c\u0435\u0440\u044b.",
"description": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 HomeKit. \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u0430\u043a\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043e\u0431\u044a\u0435\u043a\u0442. \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u043c\u043e\u0441\u0442\u0430 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u044b \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u0435 \u0434\u043e\u043c\u0435\u043d\u0443, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b. \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u044b \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0449\u0438\u0435 \u0434\u043e\u043c\u0435\u043d\u0443, \u043a\u0440\u043e\u043c\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0445. \u0414\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0430\u043a\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043c\u0435\u0434\u0438\u0430\u043f\u043b\u0435\u0435\u0440\u0430 \u0438\u043b\u0438 \u043a\u0430\u043c\u0435\u0440\u044b.",
"title": "\u0412\u044b\u0431\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 HomeKit"
},
"init": {

Some files were not shown because too many files have changed in this diff Show More