homeassistant 2025.10.0b1__py3-none-any.whl → 2025.10.0b4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of homeassistant might be problematic. Click here for more details.
- homeassistant/components/accuweather/manifest.json +1 -1
- homeassistant/components/accuweather/translations/ga.json +16 -1
- homeassistant/components/airos/__init__.py +37 -2
- homeassistant/components/airos/config_flow.py +24 -3
- homeassistant/components/airos/const.py +5 -0
- homeassistant/components/airos/entity.py +8 -3
- homeassistant/components/airos/strings.json +12 -0
- homeassistant/components/airos/translations/de.json +12 -0
- homeassistant/components/airos/translations/en-GB.json +12 -0
- homeassistant/components/airos/translations/en.json +12 -0
- homeassistant/components/airzone/translations/es.json +10 -0
- homeassistant/components/airzone/translations/et.json +10 -0
- homeassistant/components/airzone/translations/ga.json +10 -0
- homeassistant/components/airzone/translations/pt.json +10 -0
- homeassistant/components/alexa_devices/binary_sensor.py +36 -38
- homeassistant/components/alexa_devices/config_flow.py +2 -2
- homeassistant/components/alexa_devices/coordinator.py +1 -1
- homeassistant/components/alexa_devices/diagnostics.py +1 -3
- homeassistant/components/alexa_devices/icons.json +0 -40
- homeassistant/components/alexa_devices/manifest.json +1 -1
- homeassistant/components/alexa_devices/sensor.py +13 -0
- homeassistant/components/alexa_devices/strings.json +0 -20
- homeassistant/components/alexa_devices/switch.py +27 -7
- homeassistant/components/alexa_devices/translations/bg.json +0 -13
- homeassistant/components/alexa_devices/translations/cs.json +0 -20
- homeassistant/components/alexa_devices/translations/de.json +0 -20
- homeassistant/components/alexa_devices/translations/el.json +0 -20
- homeassistant/components/alexa_devices/translations/en-GB.json +0 -20
- homeassistant/components/alexa_devices/translations/en.json +0 -20
- homeassistant/components/alexa_devices/translations/es.json +0 -20
- homeassistant/components/alexa_devices/translations/et.json +0 -20
- homeassistant/components/alexa_devices/translations/ga.json +0 -20
- homeassistant/components/alexa_devices/translations/he.json +0 -7
- homeassistant/components/alexa_devices/translations/hu.json +0 -20
- homeassistant/components/alexa_devices/translations/it.json +0 -20
- homeassistant/components/alexa_devices/translations/ja.json +0 -19
- homeassistant/components/alexa_devices/translations/lt.json +0 -20
- homeassistant/components/alexa_devices/translations/mk.json +0 -14
- homeassistant/components/alexa_devices/translations/nl.json +0 -20
- homeassistant/components/alexa_devices/translations/pl.json +0 -5
- homeassistant/components/alexa_devices/translations/pt.json +0 -20
- homeassistant/components/alexa_devices/translations/ru.json +0 -5
- homeassistant/components/alexa_devices/translations/sk.json +0 -20
- homeassistant/components/alexa_devices/translations/sv.json +0 -20
- homeassistant/components/alexa_devices/translations/tr.json +0 -5
- homeassistant/components/alexa_devices/translations/zh-Hans.json +0 -20
- homeassistant/components/alexa_devices/translations/zh-Hant.json +0 -20
- homeassistant/components/alexa_devices/utils.py +24 -1
- homeassistant/components/assist_pipeline/pipeline.py +43 -18
- homeassistant/components/assist_pipeline/translations/nl.json +1 -0
- homeassistant/components/assist_pipeline/translations/sv.json +1 -0
- homeassistant/components/blue_current/translations/es.json +44 -0
- homeassistant/components/blue_current/translations/et.json +44 -0
- homeassistant/components/blue_current/translations/ga.json +44 -0
- homeassistant/components/blue_current/translations/pt.json +44 -0
- homeassistant/components/cloud/translations/sk.json +1 -1
- homeassistant/components/comelit/config_flow.py +8 -4
- homeassistant/components/cync/translations/es.json +32 -0
- homeassistant/components/cync/translations/et.json +32 -0
- homeassistant/components/cync/translations/ga.json +32 -0
- homeassistant/components/cync/translations/pt.json +32 -0
- homeassistant/components/cync/translations/ru.json +32 -0
- homeassistant/components/ecovacs/translations/es.json +7 -1
- homeassistant/components/ecovacs/translations/et.json +7 -1
- homeassistant/components/ecovacs/translations/ga.json +6 -1
- homeassistant/components/ecovacs/translations/pt.json +4 -0
- homeassistant/components/ecovacs/translations/ru.json +4 -0
- homeassistant/components/edl21/translations/de.json +1 -1
- homeassistant/components/ekeybionyx/translations/es.json +66 -0
- homeassistant/components/ekeybionyx/translations/et.json +66 -0
- homeassistant/components/ekeybionyx/translations/ga.json +66 -0
- homeassistant/components/ekeybionyx/translations/pt.json +66 -0
- homeassistant/components/elvia/translations/de.json +3 -3
- homeassistant/components/esphome/manager.py +1 -1
- homeassistant/components/esphome/manifest.json +1 -1
- homeassistant/components/esphome/translations/nl.json +1 -1
- homeassistant/components/esphome/translations/sv.json +1 -1
- homeassistant/components/ezviz/entity.py +12 -6
- homeassistant/components/file/translations/es.json +31 -0
- homeassistant/components/file/translations/et.json +31 -0
- homeassistant/components/file/translations/ga.json +31 -0
- homeassistant/components/file/translations/pt.json +31 -0
- homeassistant/components/file/translations/ru.json +31 -0
- homeassistant/components/frontend/manifest.json +1 -1
- homeassistant/components/geniushub/entity.py +4 -4
- homeassistant/components/google_generative_ai_conversation/translations/ga.json +6 -0
- homeassistant/components/habitica/translations/ga.json +24 -0
- homeassistant/components/hassio/translations/es.json +4 -0
- homeassistant/components/hassio/translations/et.json +4 -0
- homeassistant/components/hassio/translations/ga.json +4 -0
- homeassistant/components/hassio/translations/pt.json +4 -0
- homeassistant/components/hassio/translations/ru.json +4 -0
- homeassistant/components/here_travel_time/translations/es.json +6 -0
- homeassistant/components/here_travel_time/translations/et.json +6 -0
- homeassistant/components/here_travel_time/translations/ga.json +6 -0
- homeassistant/components/here_travel_time/translations/pt.json +6 -0
- homeassistant/components/irm_kmi/translations/ga.json +50 -0
- homeassistant/components/lamarzocco/__init__.py +1 -1
- homeassistant/components/lamarzocco/coordinator.py +10 -2
- homeassistant/components/lamarzocco/manifest.json +1 -1
- homeassistant/components/letpot/translations/es.json +10 -0
- homeassistant/components/letpot/translations/et.json +10 -0
- homeassistant/components/letpot/translations/ga.json +9 -0
- homeassistant/components/letpot/translations/pt.json +10 -0
- homeassistant/components/lg_thinq/translations/ga.json +9 -0
- homeassistant/components/logbook/translations/es.json +6 -1
- homeassistant/components/logbook/translations/et.json +6 -1
- homeassistant/components/logbook/translations/pl.json +3 -1
- homeassistant/components/logbook/translations/pt.json +6 -1
- homeassistant/components/logbook/translations/ru.json +6 -1
- homeassistant/components/mastodon/translations/ga.json +4 -0
- homeassistant/components/matter/translations/es.json +3 -0
- homeassistant/components/matter/translations/et.json +3 -0
- homeassistant/components/matter/translations/ga.json +3 -0
- homeassistant/components/matter/translations/pt.json +3 -0
- homeassistant/components/matter/translations/ru.json +3 -0
- homeassistant/components/miele/translations/ga.json +1 -0
- homeassistant/components/mqtt/translations/es.json +19 -0
- homeassistant/components/mqtt/translations/et.json +19 -0
- homeassistant/components/mqtt/translations/ga.json +26 -1
- homeassistant/components/mqtt/translations/pt.json +19 -0
- homeassistant/components/mqtt/translations/ru.json +19 -0
- homeassistant/components/mvglive/manifest.json +2 -4
- homeassistant/components/mvglive/sensor.py +116 -86
- homeassistant/components/nina/strings.json +2 -2
- homeassistant/components/nina/translations/ca.json +0 -2
- homeassistant/components/nina/translations/cs.json +0 -2
- homeassistant/components/nina/translations/de.json +3 -3
- homeassistant/components/nina/translations/el.json +0 -1
- homeassistant/components/nina/translations/en-GB.json +3 -3
- homeassistant/components/nina/translations/en.json +3 -3
- homeassistant/components/nina/translations/es.json +0 -2
- homeassistant/components/nina/translations/et.json +0 -2
- homeassistant/components/nina/translations/fi.json +0 -2
- homeassistant/components/nina/translations/ga.json +0 -2
- homeassistant/components/nina/translations/hu.json +0 -2
- homeassistant/components/nina/translations/id.json +0 -1
- homeassistant/components/nina/translations/it.json +0 -2
- homeassistant/components/nina/translations/ja.json +0 -2
- homeassistant/components/nina/translations/ko.json +0 -2
- homeassistant/components/nina/translations/lt.json +0 -2
- homeassistant/components/nina/translations/nl.json +0 -2
- homeassistant/components/nina/translations/pt-BR.json +0 -1
- homeassistant/components/nina/translations/pt.json +0 -2
- homeassistant/components/nina/translations/ro.json +0 -1
- homeassistant/components/nina/translations/ru.json +0 -2
- homeassistant/components/nina/translations/sk.json +0 -2
- homeassistant/components/nina/translations/sv.json +0 -2
- homeassistant/components/nina/translations/tr.json +0 -2
- homeassistant/components/nina/translations/uk.json +0 -1
- homeassistant/components/nina/translations/zh-Hans.json +0 -2
- homeassistant/components/nina/translations/zh-Hant.json +0 -2
- homeassistant/components/nordpool/translations/ga.json +6 -0
- homeassistant/components/pooldose/translations/ga.json +8 -1
- homeassistant/components/portainer/__init__.py +4 -3
- homeassistant/components/portainer/config_flow.py +3 -2
- homeassistant/components/portainer/strings.json +4 -2
- homeassistant/components/portainer/translations/de.json +4 -2
- homeassistant/components/portainer/translations/en-GB.json +4 -2
- homeassistant/components/portainer/translations/en.json +4 -2
- homeassistant/components/profiler/translations/es.json +4 -0
- homeassistant/components/profiler/translations/et.json +4 -0
- homeassistant/components/profiler/translations/ga.json +4 -0
- homeassistant/components/profiler/translations/pt.json +4 -0
- homeassistant/components/route_b_smart_meter/translations/es.json +42 -0
- homeassistant/components/route_b_smart_meter/translations/et.json +42 -0
- homeassistant/components/route_b_smart_meter/translations/ga.json +42 -0
- homeassistant/components/route_b_smart_meter/translations/pt.json +42 -0
- homeassistant/components/russound_rio/manifest.json +1 -1
- homeassistant/components/satel_integra/translations/et.json +1 -0
- homeassistant/components/shelly/translations/pl.json +4 -0
- homeassistant/components/smartthings/manifest.json +1 -1
- homeassistant/components/smartthings/translations/es.json +21 -0
- homeassistant/components/smartthings/translations/et.json +21 -0
- homeassistant/components/smartthings/translations/ga.json +15 -0
- homeassistant/components/smartthings/translations/pt.json +21 -0
- homeassistant/components/thread/config_flow.py +11 -3
- homeassistant/components/thread/manifest.json +1 -0
- homeassistant/components/tolo/translations/es.json +2 -1
- homeassistant/components/tolo/translations/ga.json +2 -1
- homeassistant/components/tuya/translations/es.json +9 -0
- homeassistant/components/tuya/translations/et.json +9 -0
- homeassistant/components/tuya/translations/ga.json +9 -0
- homeassistant/components/tuya/translations/pt.json +9 -0
- homeassistant/components/usage_prediction/translations/et.json +3 -0
- homeassistant/components/valve/translations/pl.json +2 -1
- homeassistant/components/vesync/fan.py +3 -1
- homeassistant/components/voip/translations/nl.json +1 -1
- homeassistant/components/voip/translations/sv.json +1 -1
- homeassistant/components/volvooncall/translations/ga.json +18 -1
- homeassistant/components/wyoming/translations/nl.json +1 -1
- homeassistant/components/wyoming/translations/sv.json +1 -1
- homeassistant/components/zha/config_flow.py +37 -21
- homeassistant/components/zha/manifest.json +1 -1
- homeassistant/components/zha/translations/es.json +81 -3
- homeassistant/components/zha/translations/et.json +78 -0
- homeassistant/components/zha/translations/ga.json +74 -0
- homeassistant/components/zha/translations/pt.json +80 -2
- homeassistant/components/zha/translations/ru.json +8 -2
- homeassistant/components/zwave_js/config_flow.py +30 -11
- homeassistant/components/zwave_js/translations/es.json +1 -0
- homeassistant/components/zwave_js/translations/et.json +1 -0
- homeassistant/components/zwave_js/translations/ga.json +1 -0
- homeassistant/components/zwave_js/translations/pt.json +1 -0
- homeassistant/const.py +1 -1
- homeassistant/generated/integrations.json +2 -1
- homeassistant/package_constraints.txt +1 -1
- {homeassistant-2025.10.0b1.dist-info → homeassistant-2025.10.0b4.dist-info}/METADATA +1 -1
- {homeassistant-2025.10.0b1.dist-info → homeassistant-2025.10.0b4.dist-info}/RECORD +214 -199
- {homeassistant-2025.10.0b1.dist-info → homeassistant-2025.10.0b4.dist-info}/WHEEL +0 -0
- {homeassistant-2025.10.0b1.dist-info → homeassistant-2025.10.0b4.dist-info}/entry_points.txt +0 -0
- {homeassistant-2025.10.0b1.dist-info → homeassistant-2025.10.0b4.dist-info}/licenses/LICENSE.md +0 -0
- {homeassistant-2025.10.0b1.dist-info → homeassistant-2025.10.0b4.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
- {homeassistant-2025.10.0b1.dist-info → homeassistant-2025.10.0b4.dist-info}/top_level.txt +0 -0
|
@@ -6,9 +6,12 @@ from typing import Any, Concatenate
|
|
|
6
6
|
|
|
7
7
|
from aioamazondevices.exceptions import CannotConnect, CannotRetrieveData
|
|
8
8
|
|
|
9
|
+
from homeassistant.core import HomeAssistant
|
|
9
10
|
from homeassistant.exceptions import HomeAssistantError
|
|
11
|
+
import homeassistant.helpers.entity_registry as er
|
|
10
12
|
|
|
11
|
-
from .const import DOMAIN
|
|
13
|
+
from .const import _LOGGER, DOMAIN
|
|
14
|
+
from .coordinator import AmazonDevicesCoordinator
|
|
12
15
|
from .entity import AmazonEntity
|
|
13
16
|
|
|
14
17
|
|
|
@@ -38,3 +41,23 @@ def alexa_api_call[_T: AmazonEntity, **_P](
|
|
|
38
41
|
) from err
|
|
39
42
|
|
|
40
43
|
return cmd_wrapper
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
async def async_update_unique_id(
|
|
47
|
+
hass: HomeAssistant,
|
|
48
|
+
coordinator: AmazonDevicesCoordinator,
|
|
49
|
+
domain: str,
|
|
50
|
+
old_key: str,
|
|
51
|
+
new_key: str,
|
|
52
|
+
) -> None:
|
|
53
|
+
"""Update unique id for entities created with old format."""
|
|
54
|
+
entity_registry = er.async_get(hass)
|
|
55
|
+
|
|
56
|
+
for serial_num in coordinator.data:
|
|
57
|
+
unique_id = f"{serial_num}-{old_key}"
|
|
58
|
+
if entity_id := entity_registry.async_get_entity_id(domain, DOMAIN, unique_id):
|
|
59
|
+
_LOGGER.debug("Updating unique_id for %s", entity_id)
|
|
60
|
+
new_unique_id = unique_id.replace(old_key, new_key)
|
|
61
|
+
|
|
62
|
+
# Update the registry with the new unique_id
|
|
63
|
+
entity_registry.async_update_entity(entity_id, new_unique_id=new_unique_id)
|
|
@@ -1308,7 +1308,9 @@ class PipelineRun:
|
|
|
1308
1308
|
# instead of a full response.
|
|
1309
1309
|
all_targets_in_satellite_area = (
|
|
1310
1310
|
self._get_all_targets_in_satellite_area(
|
|
1311
|
-
conversation_result.response,
|
|
1311
|
+
conversation_result.response,
|
|
1312
|
+
self._satellite_id,
|
|
1313
|
+
self._device_id,
|
|
1312
1314
|
)
|
|
1313
1315
|
)
|
|
1314
1316
|
|
|
@@ -1337,39 +1339,62 @@ class PipelineRun:
|
|
|
1337
1339
|
return (speech, all_targets_in_satellite_area)
|
|
1338
1340
|
|
|
1339
1341
|
def _get_all_targets_in_satellite_area(
|
|
1340
|
-
self,
|
|
1342
|
+
self,
|
|
1343
|
+
intent_response: intent.IntentResponse,
|
|
1344
|
+
satellite_id: str | None,
|
|
1345
|
+
device_id: str | None,
|
|
1341
1346
|
) -> bool:
|
|
1342
1347
|
"""Return true if all targeted entities were in the same area as the device."""
|
|
1343
1348
|
if (
|
|
1344
|
-
|
|
1345
|
-
or
|
|
1346
|
-
or (not device_id)
|
|
1349
|
+
intent_response.response_type != intent.IntentResponseType.ACTION_DONE
|
|
1350
|
+
or not intent_response.matched_states
|
|
1347
1351
|
):
|
|
1348
1352
|
return False
|
|
1349
1353
|
|
|
1354
|
+
entity_registry = er.async_get(self.hass)
|
|
1350
1355
|
device_registry = dr.async_get(self.hass)
|
|
1351
1356
|
|
|
1352
|
-
|
|
1353
|
-
|
|
1357
|
+
area_id: str | None = None
|
|
1358
|
+
|
|
1359
|
+
if (
|
|
1360
|
+
satellite_id is not None
|
|
1361
|
+
and (target_entity_entry := entity_registry.async_get(satellite_id))
|
|
1362
|
+
is not None
|
|
1354
1363
|
):
|
|
1355
|
-
|
|
1364
|
+
area_id = target_entity_entry.area_id
|
|
1365
|
+
device_id = target_entity_entry.device_id
|
|
1366
|
+
|
|
1367
|
+
if area_id is None:
|
|
1368
|
+
if device_id is None:
|
|
1369
|
+
return False
|
|
1370
|
+
|
|
1371
|
+
device_entry = device_registry.async_get(device_id)
|
|
1372
|
+
if device_entry is None:
|
|
1373
|
+
return False
|
|
1374
|
+
|
|
1375
|
+
area_id = device_entry.area_id
|
|
1376
|
+
if area_id is None:
|
|
1377
|
+
return False
|
|
1356
1378
|
|
|
1357
|
-
entity_registry = er.async_get(self.hass)
|
|
1358
1379
|
for state in intent_response.matched_states:
|
|
1359
|
-
|
|
1360
|
-
if
|
|
1380
|
+
target_entity_entry = entity_registry.async_get(state.entity_id)
|
|
1381
|
+
if target_entity_entry is None:
|
|
1361
1382
|
return False
|
|
1362
1383
|
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1384
|
+
target_area_id = target_entity_entry.area_id
|
|
1385
|
+
if target_area_id is None:
|
|
1386
|
+
if target_entity_entry.device_id is None:
|
|
1387
|
+
return False
|
|
1388
|
+
|
|
1389
|
+
target_device_entry = device_registry.async_get(
|
|
1390
|
+
target_entity_entry.device_id
|
|
1391
|
+
)
|
|
1392
|
+
if target_device_entry is None:
|
|
1368
1393
|
return False
|
|
1369
1394
|
|
|
1370
|
-
|
|
1395
|
+
target_area_id = target_device_entry.area_id
|
|
1371
1396
|
|
|
1372
|
-
if
|
|
1397
|
+
if target_area_id != area_id:
|
|
1373
1398
|
return False
|
|
1374
1399
|
|
|
1375
1400
|
return True
|
|
@@ -136,5 +136,49 @@
|
|
|
136
136
|
"name": "Enchufar y cargar"
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
+
},
|
|
140
|
+
"exceptions": {
|
|
141
|
+
"config_entry_not_loaded": {
|
|
142
|
+
"message": "Entrada de configuraci\u00f3n no cargada."
|
|
143
|
+
},
|
|
144
|
+
"invalid_device_id": {
|
|
145
|
+
"message": "Se ha proporcionado un ID de dispositivo no v\u00e1lido."
|
|
146
|
+
},
|
|
147
|
+
"no_config_entry": {
|
|
148
|
+
"message": "El dispositivo no tiene una entrada de configuraci\u00f3n blue_current v\u00e1lida."
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"options": {
|
|
152
|
+
"step": {
|
|
153
|
+
"init": {
|
|
154
|
+
"data": {
|
|
155
|
+
"card": "Tarjeta"
|
|
156
|
+
},
|
|
157
|
+
"description": "Selecciona la tarjeta de carga predeterminada que quieres utilizar"
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"selector": {
|
|
162
|
+
"select_charging_card": {
|
|
163
|
+
"options": {
|
|
164
|
+
"without_charging_card": "Sin tarjeta de carga"
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"services": {
|
|
169
|
+
"start_charge_session": {
|
|
170
|
+
"description": "Inicia una nueva sesi\u00f3n de carga en un punto de carga especificado.",
|
|
171
|
+
"fields": {
|
|
172
|
+
"charging_card_id": {
|
|
173
|
+
"description": "ID de la tarjeta de carga opcional que se usar\u00e1 para iniciar una sesi\u00f3n de carga. Si no se proporciona, no se usar\u00e1 la tarjeta de carga.",
|
|
174
|
+
"name": "ID de la tarjeta de carga"
|
|
175
|
+
},
|
|
176
|
+
"device_id": {
|
|
177
|
+
"description": "El ID del punto de carga de Blue Current.",
|
|
178
|
+
"name": "ID del dispositivo"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"name": "Iniciar sesi\u00f3n de carga"
|
|
182
|
+
}
|
|
139
183
|
}
|
|
140
184
|
}
|
|
@@ -136,5 +136,49 @@
|
|
|
136
136
|
"name": "\u00dchenda ja laadi"
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
+
},
|
|
140
|
+
"exceptions": {
|
|
141
|
+
"config_entry_not_loaded": {
|
|
142
|
+
"message": "Konfiguratsioonikirje pole laaditud."
|
|
143
|
+
},
|
|
144
|
+
"invalid_device_id": {
|
|
145
|
+
"message": "Esitatud on kehtetu seadme ID."
|
|
146
|
+
},
|
|
147
|
+
"no_config_entry": {
|
|
148
|
+
"message": "Seadmel puudub kehtiv blue_current konfiguratsioonikirje."
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"options": {
|
|
152
|
+
"step": {
|
|
153
|
+
"init": {
|
|
154
|
+
"data": {
|
|
155
|
+
"card": "Kaart"
|
|
156
|
+
},
|
|
157
|
+
"description": "Vali vaikimisi kasutatav laadimiskaart"
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"selector": {
|
|
162
|
+
"select_charging_card": {
|
|
163
|
+
"options": {
|
|
164
|
+
"without_charging_card": "Ilma laadimiskaardita"
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"services": {
|
|
169
|
+
"start_charge_session": {
|
|
170
|
+
"description": "Alustab m\u00e4\u00e4ratud laadimispunktis uut laadimisseanssi.",
|
|
171
|
+
"fields": {
|
|
172
|
+
"charging_card_id": {
|
|
173
|
+
"description": "Valikuline laadimiskaardi ID mida kasutatakse laadimisseansi alustamiseks. Kui seda ei esitata siis laadimiskaarti ei kasutata.",
|
|
174
|
+
"name": "Laadimiskaardi ID"
|
|
175
|
+
},
|
|
176
|
+
"device_id": {
|
|
177
|
+
"description": "Blue Current laadimispunkti ID.",
|
|
178
|
+
"name": "Seadme ID"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"name": "Alusta laadimist"
|
|
182
|
+
}
|
|
139
183
|
}
|
|
140
184
|
}
|
|
@@ -136,5 +136,49 @@
|
|
|
136
136
|
"name": "Breise\u00e1n & Muirear"
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
+
},
|
|
140
|
+
"exceptions": {
|
|
141
|
+
"config_entry_not_loaded": {
|
|
142
|
+
"message": "N\u00edor l\u00f3d\u00e1ileadh an iontr\u00e1il chumra\u00edochta."
|
|
143
|
+
},
|
|
144
|
+
"invalid_device_id": {
|
|
145
|
+
"message": "Tugadh aitheant\u00f3ir gl\u00e9is neamhbhail\u00ed."
|
|
146
|
+
},
|
|
147
|
+
"no_config_entry": {
|
|
148
|
+
"message": "N\u00edl iontr\u00e1il chumra\u00edochta blue_current bail\u00ed ag an ngl\u00e9as."
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"options": {
|
|
152
|
+
"step": {
|
|
153
|
+
"init": {
|
|
154
|
+
"data": {
|
|
155
|
+
"card": "C\u00e1rta"
|
|
156
|
+
},
|
|
157
|
+
"description": "Roghnaigh an c\u00e1rta muirir r\u00e9amhshocraithe is mian leat a \u00fas\u00e1id"
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"selector": {
|
|
162
|
+
"select_charging_card": {
|
|
163
|
+
"options": {
|
|
164
|
+
"without_charging_card": "Gan c\u00e1rta muirir"
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"services": {
|
|
169
|
+
"start_charge_session": {
|
|
170
|
+
"description": "Tosa\u00edonn s\u00e9 seisi\u00fan luchtaithe nua ag pointe luchtaithe sonraithe.",
|
|
171
|
+
"fields": {
|
|
172
|
+
"charging_card_id": {
|
|
173
|
+
"description": "Aitheantas c\u00e1rta muirir roghnach a \u00fas\u00e1idfear chun seisi\u00fan muirir a thos\u00fa. Mura gcuirtear ar f\u00e1il \u00e9, n\u00ed \u00fas\u00e1idfear c\u00e1rta muirir.",
|
|
174
|
+
"name": "Aitheantas c\u00e1rta muirir"
|
|
175
|
+
},
|
|
176
|
+
"device_id": {
|
|
177
|
+
"description": "Aitheantas phointe luchtaithe Blue Current.",
|
|
178
|
+
"name": "Aitheantas Gl\u00e9as"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"name": "Tosaigh seisi\u00fan muirir"
|
|
182
|
+
}
|
|
139
183
|
}
|
|
140
184
|
}
|
|
@@ -136,5 +136,49 @@
|
|
|
136
136
|
"name": "Ligar & Carregar"
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
+
},
|
|
140
|
+
"exceptions": {
|
|
141
|
+
"config_entry_not_loaded": {
|
|
142
|
+
"message": "Entrada de configura\u00e7\u00e3o n\u00e3o carregada."
|
|
143
|
+
},
|
|
144
|
+
"invalid_device_id": {
|
|
145
|
+
"message": "ID de dispositivo inv\u00e1lido fornecido."
|
|
146
|
+
},
|
|
147
|
+
"no_config_entry": {
|
|
148
|
+
"message": "O dispositivo n\u00e3o tem uma entrada de configura\u00e7\u00e3o blue_current v\u00e1lida."
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"options": {
|
|
152
|
+
"step": {
|
|
153
|
+
"init": {
|
|
154
|
+
"data": {
|
|
155
|
+
"card": "Cart\u00e3o"
|
|
156
|
+
},
|
|
157
|
+
"description": "Selecionar o cart\u00e3o de carregamento predefinido que pretende utilizar"
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"selector": {
|
|
162
|
+
"select_charging_card": {
|
|
163
|
+
"options": {
|
|
164
|
+
"without_charging_card": "Sem cart\u00e3o de carregamento"
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"services": {
|
|
169
|
+
"start_charge_session": {
|
|
170
|
+
"description": "Inicia uma nova sess\u00e3o de carregamento num ponto de carregamento especificado.",
|
|
171
|
+
"fields": {
|
|
172
|
+
"charging_card_id": {
|
|
173
|
+
"description": "ID opcional do cart\u00e3o de carregamento que ser\u00e1 utilizado para iniciar uma sess\u00e3o de carregamento. Se n\u00e3o for fornecido, n\u00e3o ser\u00e1 utilizado qualquer cart\u00e3o de carregamento.",
|
|
174
|
+
"name": "ID do cart\u00e3o de carregamento"
|
|
175
|
+
},
|
|
176
|
+
"device_id": {
|
|
177
|
+
"description": "O ID do ponto de carregamento de Blue Current.",
|
|
178
|
+
"name": "ID do dispositivo"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"name": "Iniciar sess\u00e3o de carregamento"
|
|
182
|
+
}
|
|
139
183
|
}
|
|
140
184
|
}
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"system_health": {
|
|
79
79
|
"info": {
|
|
80
80
|
"alexa_enabled": "Alexa povolen\u00e1",
|
|
81
|
-
"can_reach_cert_server": "
|
|
81
|
+
"can_reach_cert_server": "Certifika\u010dn\u00fd server dosiahnut\u00fd",
|
|
82
82
|
"can_reach_cloud": "Home Assistant Cloud dosiahnut\u00fd",
|
|
83
83
|
"can_reach_cloud_auth": "Overovac\u00ed server dosiahnut\u00fd",
|
|
84
84
|
"certificate_status": "Stav certifik\u00e1tu",
|
|
@@ -25,23 +25,27 @@ from .const import _LOGGER, DEFAULT_PORT, DEVICE_TYPE_LIST, DOMAIN
|
|
|
25
25
|
from .utils import async_client_session
|
|
26
26
|
|
|
27
27
|
DEFAULT_HOST = "192.168.1.252"
|
|
28
|
-
DEFAULT_PIN = 111111
|
|
28
|
+
DEFAULT_PIN = "111111"
|
|
29
29
|
|
|
30
30
|
|
|
31
|
+
pin_regex = r"^[0-9]{4,10}$"
|
|
32
|
+
|
|
31
33
|
USER_SCHEMA = vol.Schema(
|
|
32
34
|
{
|
|
33
35
|
vol.Required(CONF_HOST, default=DEFAULT_HOST): cv.string,
|
|
34
36
|
vol.Required(CONF_PORT, default=DEFAULT_PORT): cv.port,
|
|
35
|
-
vol.Optional(CONF_PIN, default=DEFAULT_PIN): cv.
|
|
37
|
+
vol.Optional(CONF_PIN, default=DEFAULT_PIN): cv.matches_regex(pin_regex),
|
|
36
38
|
vol.Required(CONF_TYPE, default=BRIDGE): vol.In(DEVICE_TYPE_LIST),
|
|
37
39
|
}
|
|
38
40
|
)
|
|
39
|
-
STEP_REAUTH_DATA_SCHEMA = vol.Schema(
|
|
41
|
+
STEP_REAUTH_DATA_SCHEMA = vol.Schema(
|
|
42
|
+
{vol.Required(CONF_PIN): cv.matches_regex(pin_regex)}
|
|
43
|
+
)
|
|
40
44
|
STEP_RECONFIGURE = vol.Schema(
|
|
41
45
|
{
|
|
42
46
|
vol.Required(CONF_HOST): cv.string,
|
|
43
47
|
vol.Required(CONF_PORT): cv.port,
|
|
44
|
-
vol.Optional(CONF_PIN, default=DEFAULT_PIN): cv.
|
|
48
|
+
vol.Optional(CONF_PIN, default=DEFAULT_PIN): cv.matches_regex(pin_regex),
|
|
45
49
|
}
|
|
46
50
|
)
|
|
47
51
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"config": {
|
|
3
|
+
"abort": {
|
|
4
|
+
"already_configured": "La cuenta ya est\u00e1 configurada"
|
|
5
|
+
},
|
|
6
|
+
"error": {
|
|
7
|
+
"cannot_connect": "No se pudo conectar",
|
|
8
|
+
"invalid_auth": "Autenticaci\u00f3n no v\u00e1lida",
|
|
9
|
+
"unknown": "Error inesperado"
|
|
10
|
+
},
|
|
11
|
+
"step": {
|
|
12
|
+
"two_factor": {
|
|
13
|
+
"data": {
|
|
14
|
+
"two_factor_code": "C\u00f3digo de dos factores"
|
|
15
|
+
},
|
|
16
|
+
"data_description": {
|
|
17
|
+
"two_factor_code": "El c\u00f3digo del segundo factor enviado al correo electr\u00f3nico de tu cuenta Cync"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"user": {
|
|
21
|
+
"data": {
|
|
22
|
+
"email": "Correo electr\u00f3nico",
|
|
23
|
+
"password": "Contrase\u00f1a"
|
|
24
|
+
},
|
|
25
|
+
"data_description": {
|
|
26
|
+
"email": "La direcci\u00f3n de correo electr\u00f3nico de tu cuenta de Cync",
|
|
27
|
+
"password": "La contrase\u00f1a de tu cuenta de Cync"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"config": {
|
|
3
|
+
"abort": {
|
|
4
|
+
"already_configured": "Kasutaja on juba seadistatud"
|
|
5
|
+
},
|
|
6
|
+
"error": {
|
|
7
|
+
"cannot_connect": "\u00dchendamine nurjus",
|
|
8
|
+
"invalid_auth": "Tuvastamine nurjus",
|
|
9
|
+
"unknown": "Ootamatu t\u00f5rge"
|
|
10
|
+
},
|
|
11
|
+
"step": {
|
|
12
|
+
"two_factor": {
|
|
13
|
+
"data": {
|
|
14
|
+
"two_factor_code": "Kaheastmelise tuvastuse kood"
|
|
15
|
+
},
|
|
16
|
+
"data_description": {
|
|
17
|
+
"two_factor_code": "Cync-konto e-posti aadressile saadetud kahefaktoriline kood"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"user": {
|
|
21
|
+
"data": {
|
|
22
|
+
"email": "E-posti aadress",
|
|
23
|
+
"password": "Salas\u00f5na"
|
|
24
|
+
},
|
|
25
|
+
"data_description": {
|
|
26
|
+
"email": "Cynci konto e-posti aadress",
|
|
27
|
+
"password": "Cynci konto salas\u00f5na"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"config": {
|
|
3
|
+
"abort": {
|
|
4
|
+
"already_configured": "T\u00e1 an cuntas cumraithe cheana f\u00e9in"
|
|
5
|
+
},
|
|
6
|
+
"error": {
|
|
7
|
+
"cannot_connect": "Theip ar an nascadh",
|
|
8
|
+
"invalid_auth": "F\u00edordheimhni\u00fa neamhbhail\u00ed",
|
|
9
|
+
"unknown": "Earr\u00e1id gan choinne"
|
|
10
|
+
},
|
|
11
|
+
"step": {
|
|
12
|
+
"two_factor": {
|
|
13
|
+
"data": {
|
|
14
|
+
"two_factor_code": "C\u00f3d dh\u00e1 fhacht\u00f3ir"
|
|
15
|
+
},
|
|
16
|
+
"data_description": {
|
|
17
|
+
"two_factor_code": "An c\u00f3d dh\u00e1 fhacht\u00f3ir a seoladh chuig r\u00edomhphost do chuntais Cync"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"user": {
|
|
21
|
+
"data": {
|
|
22
|
+
"email": "R\u00edomhphost",
|
|
23
|
+
"password": "Pasfhocal"
|
|
24
|
+
},
|
|
25
|
+
"data_description": {
|
|
26
|
+
"email": "Seoladh r\u00edomhphoist do chuntais Cync",
|
|
27
|
+
"password": "Pasfhocal do chuntais Cync"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"config": {
|
|
3
|
+
"abort": {
|
|
4
|
+
"already_configured": "Conta j\u00e1 configurada"
|
|
5
|
+
},
|
|
6
|
+
"error": {
|
|
7
|
+
"cannot_connect": "A liga\u00e7\u00e3o falhou",
|
|
8
|
+
"invalid_auth": "Autentica\u00e7\u00e3o inv\u00e1lida",
|
|
9
|
+
"unknown": "Erro inesperado"
|
|
10
|
+
},
|
|
11
|
+
"step": {
|
|
12
|
+
"two_factor": {
|
|
13
|
+
"data": {
|
|
14
|
+
"two_factor_code": "C\u00f3digo de dois fatores"
|
|
15
|
+
},
|
|
16
|
+
"data_description": {
|
|
17
|
+
"two_factor_code": "O c\u00f3digo de dois fatores enviado para o e-mail da sua conta Cync"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"user": {
|
|
21
|
+
"data": {
|
|
22
|
+
"email": "Email",
|
|
23
|
+
"password": "Palavra-passe"
|
|
24
|
+
},
|
|
25
|
+
"data_description": {
|
|
26
|
+
"email": "O endere\u00e7o de correio eletr\u00f3nico da sua conta Cync",
|
|
27
|
+
"password": "A palavra-passe da sua conta Cync"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"config": {
|
|
3
|
+
"abort": {
|
|
4
|
+
"already_configured": "\u042d\u0442\u0430 \u0443\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0432 Home Assistant"
|
|
5
|
+
},
|
|
6
|
+
"error": {
|
|
7
|
+
"cannot_connect": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f",
|
|
8
|
+
"invalid_auth": "\u041e\u0448\u0438\u0431\u043a\u0430 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438",
|
|
9
|
+
"unknown": "\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430"
|
|
10
|
+
},
|
|
11
|
+
"step": {
|
|
12
|
+
"two_factor": {
|
|
13
|
+
"data": {
|
|
14
|
+
"two_factor_code": "\u041a\u043e\u0434 \u0434\u0432\u0443\u0445\u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438"
|
|
15
|
+
},
|
|
16
|
+
"data_description": {
|
|
17
|
+
"two_factor_code": "\u0414\u0432\u0443\u0445\u0444\u0430\u043a\u0442\u043e\u0440\u043d\u044b\u0439 \u043a\u043e\u0434, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443\u044e \u043f\u043e\u0447\u0442\u0443 \u0432\u0430\u0448\u0435\u0439 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Cync"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"user": {
|
|
21
|
+
"data": {
|
|
22
|
+
"email": "\u0410\u0434\u0440\u0435\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b",
|
|
23
|
+
"password": "\u041f\u0430\u0440\u043e\u043b\u044c"
|
|
24
|
+
},
|
|
25
|
+
"data_description": {
|
|
26
|
+
"email": "\u0410\u0434\u0440\u0435\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Cync",
|
|
27
|
+
"password": "\u041f\u0430\u0440\u043e\u043b\u044c \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Cync"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -102,10 +102,14 @@
|
|
|
102
102
|
},
|
|
103
103
|
"volume": {
|
|
104
104
|
"name": "Volumen"
|
|
105
|
+
},
|
|
106
|
+
"water_amount": {
|
|
107
|
+
"name": "Nivel del caudal de agua"
|
|
105
108
|
}
|
|
106
109
|
},
|
|
107
110
|
"select": {
|
|
108
111
|
"water_amount": {
|
|
112
|
+
"name": "Nivel del caudal de agua",
|
|
109
113
|
"state": {
|
|
110
114
|
"high": "Alto",
|
|
111
115
|
"low": "Bajo",
|
|
@@ -171,8 +175,10 @@
|
|
|
171
175
|
"station_state": {
|
|
172
176
|
"name": "Estado de la estaci\u00f3n",
|
|
173
177
|
"state": {
|
|
178
|
+
"drying_mop": "Secando la mopa",
|
|
174
179
|
"emptying_dustbin": "Vaciando el dep\u00f3sito de suciedad",
|
|
175
|
-
"idle": "Inactivo"
|
|
180
|
+
"idle": "Inactivo",
|
|
181
|
+
"washing_mop": "Lavando la mopa"
|
|
176
182
|
}
|
|
177
183
|
},
|
|
178
184
|
"stats_area": {
|
|
@@ -102,10 +102,14 @@
|
|
|
102
102
|
},
|
|
103
103
|
"volume": {
|
|
104
104
|
"name": "Maht"
|
|
105
|
+
},
|
|
106
|
+
"water_amount": {
|
|
107
|
+
"name": "Vee voolutugevus"
|
|
105
108
|
}
|
|
106
109
|
},
|
|
107
110
|
"select": {
|
|
108
111
|
"water_amount": {
|
|
112
|
+
"name": "Vee voolutugevus",
|
|
109
113
|
"state": {
|
|
110
114
|
"high": "K\u00f5rge",
|
|
111
115
|
"low": "Madal",
|
|
@@ -171,8 +175,10 @@
|
|
|
171
175
|
"station_state": {
|
|
172
176
|
"name": "Jaama olek",
|
|
173
177
|
"state": {
|
|
178
|
+
"drying_mop": "Kuivatusmopp",
|
|
174
179
|
"emptying_dustbin": "Pr\u00fcgikasti t\u00fchjendamine",
|
|
175
|
-
"idle": "Ootel"
|
|
180
|
+
"idle": "Ootel",
|
|
181
|
+
"washing_mop": "Pesumopp"
|
|
176
182
|
}
|
|
177
183
|
},
|
|
178
184
|
"stats_area": {
|
|
@@ -102,6 +102,9 @@
|
|
|
102
102
|
},
|
|
103
103
|
"volume": {
|
|
104
104
|
"name": "Toirt"
|
|
105
|
+
},
|
|
106
|
+
"water_amount": {
|
|
107
|
+
"name": "Leibh\u00e9al sreafa uisce"
|
|
105
108
|
}
|
|
106
109
|
},
|
|
107
110
|
"select": {
|
|
@@ -171,8 +174,10 @@
|
|
|
171
174
|
"station_state": {
|
|
172
175
|
"name": "St\u00e1t an st\u00e1isi\u00fain",
|
|
173
176
|
"state": {
|
|
177
|
+
"drying_mop": "Mop triom\u00fach\u00e1in",
|
|
174
178
|
"emptying_dustbin": "Bosca bruscair a fholmh\u00fa",
|
|
175
|
-
"idle": "D\u00edomhaoin"
|
|
179
|
+
"idle": "D\u00edomhaoin",
|
|
180
|
+
"washing_mop": "Mop n\u00edoch\u00e1in"
|
|
176
181
|
}
|
|
177
182
|
},
|
|
178
183
|
"stats_area": {
|
|
@@ -102,10 +102,14 @@
|
|
|
102
102
|
},
|
|
103
103
|
"volume": {
|
|
104
104
|
"name": "Volume"
|
|
105
|
+
},
|
|
106
|
+
"water_amount": {
|
|
107
|
+
"name": "N\u00edvel do caudal de \u00e1gua"
|
|
105
108
|
}
|
|
106
109
|
},
|
|
107
110
|
"select": {
|
|
108
111
|
"water_amount": {
|
|
112
|
+
"name": "N\u00edvel do caudal de \u00e1gua",
|
|
109
113
|
"state": {
|
|
110
114
|
"high": "Alto",
|
|
111
115
|
"low": "Baixo",
|