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
|
@@ -78,6 +78,21 @@
|
|
|
78
78
|
"name": "Peata"
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
|
+
"climate": {
|
|
82
|
+
"air_conditioner": {
|
|
83
|
+
"state_attributes": {
|
|
84
|
+
"preset_mode": {
|
|
85
|
+
"state": {
|
|
86
|
+
"long_wind": "Aeglane tuul",
|
|
87
|
+
"quiet": "Vaikne",
|
|
88
|
+
"smart": "Nutikas",
|
|
89
|
+
"wind_free": "WindFree",
|
|
90
|
+
"wind_free_sleep": "WindFree \u00f6\u00f6re\u017eiim"
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
},
|
|
81
96
|
"event": {
|
|
82
97
|
"button": {
|
|
83
98
|
"state": {
|
|
@@ -153,6 +168,8 @@
|
|
|
153
168
|
"name": "Lamp",
|
|
154
169
|
"state": {
|
|
155
170
|
"extra_high": "Eriti k\u00f5rge",
|
|
171
|
+
"high": "K\u00f5rge",
|
|
172
|
+
"low": "Madal",
|
|
156
173
|
"mid": "Keskmine",
|
|
157
174
|
"off": "V\u00e4ljas",
|
|
158
175
|
"on": "Sees"
|
|
@@ -174,6 +191,7 @@
|
|
|
174
191
|
"heavy": "Tugev",
|
|
175
192
|
"light": "Kerge",
|
|
176
193
|
"none": "Puudub",
|
|
194
|
+
"normal": "Tavaline",
|
|
177
195
|
"up": "\u00dcles"
|
|
178
196
|
}
|
|
179
197
|
},
|
|
@@ -598,6 +616,9 @@
|
|
|
598
616
|
}
|
|
599
617
|
},
|
|
600
618
|
"switch": {
|
|
619
|
+
"auto_cycle_link": {
|
|
620
|
+
"name": "Auto Cycle Link"
|
|
621
|
+
},
|
|
601
622
|
"bubble_soak": {
|
|
602
623
|
"name": "Mullidega leotamine"
|
|
603
624
|
},
|
|
@@ -75,6 +75,21 @@
|
|
|
75
75
|
"name": "Stad"
|
|
76
76
|
}
|
|
77
77
|
},
|
|
78
|
+
"climate": {
|
|
79
|
+
"air_conditioner": {
|
|
80
|
+
"state_attributes": {
|
|
81
|
+
"preset_mode": {
|
|
82
|
+
"state": {
|
|
83
|
+
"long_wind": "Gaoth fhada",
|
|
84
|
+
"quiet": "Ci\u00fain",
|
|
85
|
+
"smart": "Cliste",
|
|
86
|
+
"wind_free": "Gaoth Saor",
|
|
87
|
+
"wind_free_sleep": "Codladh saor \u00f3 ghaoth"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
},
|
|
78
93
|
"event": {
|
|
79
94
|
"button": {
|
|
80
95
|
"state": {
|
|
@@ -78,6 +78,21 @@
|
|
|
78
78
|
"name": "Parar"
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
|
+
"climate": {
|
|
82
|
+
"air_conditioner": {
|
|
83
|
+
"state_attributes": {
|
|
84
|
+
"preset_mode": {
|
|
85
|
+
"state": {
|
|
86
|
+
"long_wind": "Vento longo",
|
|
87
|
+
"quiet": "Silencioso",
|
|
88
|
+
"smart": "Inteligente",
|
|
89
|
+
"wind_free": "WindFree",
|
|
90
|
+
"wind_free_sleep": "Sono WindFree"
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
},
|
|
81
96
|
"event": {
|
|
82
97
|
"button": {
|
|
83
98
|
"state": {
|
|
@@ -153,6 +168,8 @@
|
|
|
153
168
|
"name": "L\u00e2mpada",
|
|
154
169
|
"state": {
|
|
155
170
|
"extra_high": "Extra alto",
|
|
171
|
+
"high": "Alto",
|
|
172
|
+
"low": "Baixo",
|
|
156
173
|
"mid": "M\u00e9dio",
|
|
157
174
|
"off": "Desligado",
|
|
158
175
|
"on": "Ligado"
|
|
@@ -174,6 +191,7 @@
|
|
|
174
191
|
"heavy": "Pesado",
|
|
175
192
|
"light": "Luz",
|
|
176
193
|
"none": "Nenhum",
|
|
194
|
+
"normal": "Normal",
|
|
177
195
|
"up": "Para cima"
|
|
178
196
|
}
|
|
179
197
|
},
|
|
@@ -598,6 +616,9 @@
|
|
|
598
616
|
}
|
|
599
617
|
},
|
|
600
618
|
"switch": {
|
|
619
|
+
"auto_cycle_link": {
|
|
620
|
+
"name": "Liga\u00e7\u00e3o do ciclo autom\u00e1tico"
|
|
621
|
+
},
|
|
601
622
|
"bubble_soak": {
|
|
602
623
|
"name": "Banho de bolhas"
|
|
603
624
|
},
|
|
@@ -5,7 +5,11 @@ from __future__ import annotations
|
|
|
5
5
|
from typing import Any
|
|
6
6
|
|
|
7
7
|
from homeassistant.components import onboarding
|
|
8
|
-
from homeassistant.config_entries import
|
|
8
|
+
from homeassistant.config_entries import (
|
|
9
|
+
DEFAULT_DISCOVERY_UNIQUE_ID,
|
|
10
|
+
ConfigFlow,
|
|
11
|
+
ConfigFlowResult,
|
|
12
|
+
)
|
|
9
13
|
from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo
|
|
10
14
|
|
|
11
15
|
from .const import DOMAIN
|
|
@@ -18,14 +22,18 @@ class ThreadConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
18
22
|
|
|
19
23
|
async def async_step_import(self, import_data: None) -> ConfigFlowResult:
|
|
20
24
|
"""Set up by import from async_setup."""
|
|
21
|
-
await self.
|
|
25
|
+
await self.async_set_unique_id(
|
|
26
|
+
DEFAULT_DISCOVERY_UNIQUE_ID, raise_on_progress=False
|
|
27
|
+
)
|
|
22
28
|
return self.async_create_entry(title="Thread", data={})
|
|
23
29
|
|
|
24
30
|
async def async_step_user(
|
|
25
31
|
self, user_input: dict[str, str] | None = None
|
|
26
32
|
) -> ConfigFlowResult:
|
|
27
33
|
"""Set up by import from async_setup."""
|
|
28
|
-
await self.
|
|
34
|
+
await self.async_set_unique_id(
|
|
35
|
+
DEFAULT_DISCOVERY_UNIQUE_ID, raise_on_progress=False
|
|
36
|
+
)
|
|
29
37
|
return self.async_create_entry(title="Thread", data={})
|
|
30
38
|
|
|
31
39
|
async def async_step_zeroconf(
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"config": {
|
|
3
3
|
"abort": {
|
|
4
|
-
"already_configured": "El dispositivo ya est\u00e1 configurado"
|
|
4
|
+
"already_configured": "El dispositivo ya est\u00e1 configurado",
|
|
5
|
+
"reconfigure_successful": "Se volvi\u00f3 a configurar correctamente"
|
|
5
6
|
},
|
|
6
7
|
"error": {
|
|
7
8
|
"cannot_connect": "No se pudo conectar"
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"config": {
|
|
3
3
|
"abort": {
|
|
4
|
-
"already_configured": "T\u00e1 an gl\u00e9as cumraithe cheana f\u00e9in"
|
|
4
|
+
"already_configured": "T\u00e1 an gl\u00e9as cumraithe cheana f\u00e9in",
|
|
5
|
+
"reconfigure_successful": "D'\u00e9irigh leis an athchumr\u00fa"
|
|
5
6
|
},
|
|
6
7
|
"error": {
|
|
7
8
|
"cannot_connect": "Theip ar an nascadh"
|
|
@@ -1025,6 +1025,9 @@
|
|
|
1025
1025
|
"valve": {
|
|
1026
1026
|
"indexed_valve": {
|
|
1027
1027
|
"name": "V\u00e1lvula {index}"
|
|
1028
|
+
},
|
|
1029
|
+
"valve": {
|
|
1030
|
+
"name": "V\u00e1lvula"
|
|
1028
1031
|
}
|
|
1029
1032
|
}
|
|
1030
1033
|
},
|
|
@@ -1032,5 +1035,11 @@
|
|
|
1032
1035
|
"action_dpcode_not_found": {
|
|
1033
1036
|
"message": "No se puede procesar la acci\u00f3n porque el dispositivo no proporciona un c\u00f3digo de funci\u00f3n correspondiente (se esperaba uno de {expected} en {available})."
|
|
1034
1037
|
}
|
|
1038
|
+
},
|
|
1039
|
+
"issues": {
|
|
1040
|
+
"deprecated_entity_new_valve": {
|
|
1041
|
+
"description": "La entidad Tuya `{entity}` est\u00e1 obsoleta y fue reemplazada por una nueva entidad de v\u00e1lvula. \nPor favor, actualiza tus paneles, automatizaciones y scripts, desactiva `{entity}` y vuelve a cargar la integraci\u00f3n/reinicia Home Assistant para solucionar este problema.",
|
|
1042
|
+
"title": "{name} est\u00e1 obsoleto"
|
|
1043
|
+
}
|
|
1035
1044
|
}
|
|
1036
1045
|
}
|
|
@@ -1025,6 +1025,9 @@
|
|
|
1025
1025
|
"valve": {
|
|
1026
1026
|
"indexed_valve": {
|
|
1027
1027
|
"name": "Klapp {index}"
|
|
1028
|
+
},
|
|
1029
|
+
"valve": {
|
|
1030
|
+
"name": "Klapp"
|
|
1028
1031
|
}
|
|
1029
1032
|
}
|
|
1030
1033
|
},
|
|
@@ -1032,5 +1035,11 @@
|
|
|
1032
1035
|
"action_dpcode_not_found": {
|
|
1033
1036
|
"message": "Toimingut ei saa t\u00f6\u00f6delda kuna seade ei paku vastavat funktsioonikoodi (oodatav oli \u00fcks koodidest {expected} valikust {available} )."
|
|
1034
1037
|
}
|
|
1038
|
+
},
|
|
1039
|
+
"issues": {
|
|
1040
|
+
"deprecated_entity_new_valve": {
|
|
1041
|
+
"description": "Tuya \u00fcksus \"{entity}' on kasutuselt k\u00f5rvaldatud ja asendatud uue klapi\u00fcksusega.\nV\u00e4rskenda oma vaateid, automatiseerimisi ja skripte, keela `{entity}` ja lae selle probleemi lahendamiseks sidumine uuesti / taask\u00e4ivita Home Assistant.",
|
|
1042
|
+
"title": "{name} on aegunud"
|
|
1043
|
+
}
|
|
1035
1044
|
}
|
|
1036
1045
|
}
|
|
@@ -1014,6 +1014,9 @@
|
|
|
1014
1014
|
"valve": {
|
|
1015
1015
|
"indexed_valve": {
|
|
1016
1016
|
"name": "Comhla {index}"
|
|
1017
|
+
},
|
|
1018
|
+
"valve": {
|
|
1019
|
+
"name": "Comhla"
|
|
1017
1020
|
}
|
|
1018
1021
|
}
|
|
1019
1022
|
},
|
|
@@ -1021,5 +1024,11 @@
|
|
|
1021
1024
|
"action_dpcode_not_found": {
|
|
1022
1025
|
"message": "N\u00ed f\u00e9idir an gn\u00edomh a phr\u00f3ise\u00e1il mar nach sol\u00e1thra\u00edonn an gl\u00e9as c\u00f3d feidhme comhfhreagrach (bh\u00edothas ag s\u00fail le ceann de {expected} i {available})."
|
|
1023
1026
|
}
|
|
1027
|
+
},
|
|
1028
|
+
"issues": {
|
|
1029
|
+
"deprecated_entity_new_valve": {
|
|
1030
|
+
"description": "T\u00e1 an t-eintiteas Tuya `{entity}` imithe i l\u00e9ig, agus t\u00e1 eintiteas comhla nua ina \u00e1it.\nNuashonraigh do phain\u00e9il rialaithe, uathoibrithe agus scripteanna, d\u00edchumasaigh `{entity}` agus athl\u00f3d\u00e1il an comhth\u00e1th\u00fa/atosaigh Home Assistant chun an fhadhb seo a r\u00e9iteach.",
|
|
1031
|
+
"title": "T\u00e1 {name} imithe i l\u00e9ig"
|
|
1032
|
+
}
|
|
1024
1033
|
}
|
|
1025
1034
|
}
|
|
@@ -1025,6 +1025,9 @@
|
|
|
1025
1025
|
"valve": {
|
|
1026
1026
|
"indexed_valve": {
|
|
1027
1027
|
"name": "V\u00e1lvula {index}"
|
|
1028
|
+
},
|
|
1029
|
+
"valve": {
|
|
1030
|
+
"name": "V\u00e1lvula"
|
|
1028
1031
|
}
|
|
1029
1032
|
}
|
|
1030
1033
|
},
|
|
@@ -1032,5 +1035,11 @@
|
|
|
1032
1035
|
"action_dpcode_not_found": {
|
|
1033
1036
|
"message": "Imposs\u00edvel processar a a\u00e7\u00e3o porque o dispositivo n\u00e3o fornece um c\u00f3digo de fun\u00e7\u00e3o correspondente (esperava-se um de {expected} em {available})."
|
|
1034
1037
|
}
|
|
1038
|
+
},
|
|
1039
|
+
"issues": {
|
|
1040
|
+
"deprecated_entity_new_valve": {
|
|
1041
|
+
"description": "A entidade Tuya `{entity}` foi descontinuada e substitu\u00edda por uma nova entidade de v\u00e1lvula. Por favor, atualize os seus pain\u00e9is, automatiza\u00e7\u00f5es e scripts, desative `{entity}` e recarregue a integra\u00e7\u00e3o/reinicie o Home Assistant para corrigir esse problema.",
|
|
1042
|
+
"title": "{name} est\u00e1 obsoleto"
|
|
1043
|
+
}
|
|
1035
1044
|
}
|
|
1036
1045
|
}
|
|
@@ -141,7 +141,9 @@ class VeSyncFanHA(VeSyncBaseEntity, FanEntity):
|
|
|
141
141
|
attr["active_time"] = self.device.state.active_time
|
|
142
142
|
|
|
143
143
|
if hasattr(self.device.state, "display_status"):
|
|
144
|
-
attr["display_status"] =
|
|
144
|
+
attr["display_status"] = getattr(
|
|
145
|
+
self.device.state.display_status, "value", None
|
|
146
|
+
)
|
|
145
147
|
|
|
146
148
|
if hasattr(self.device.state, "child_lock"):
|
|
147
149
|
attr["child_lock"] = self.device.state.child_lock
|
|
@@ -1 +1,18 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"config": {
|
|
3
|
+
"abort": {
|
|
4
|
+
"deprecated": "T\u00e1 comhth\u00e1th\u00fa Volvo curtha in \u00e1it Volvo On Call. Bain \u00fas\u00e1id as comhth\u00e1th\u00fa Volvo ina ionad."
|
|
5
|
+
},
|
|
6
|
+
"step": {
|
|
7
|
+
"user": {
|
|
8
|
+
"description": "T\u00e1 Volvo on Call imithe i l\u00e9ig, bain \u00fas\u00e1id as comhth\u00e1th\u00fa Volvo."
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"issues": {
|
|
13
|
+
"volvooncall_deprecated": {
|
|
14
|
+
"description": "T\u00e1 an comhth\u00e1th\u00fa Volvo On Call imithe i l\u00e9ig agus bainfear \u00e9 in 2026.3. Bain \u00fas\u00e1id as an gcomhth\u00e1th\u00fa Volvo ina ionad.\n\nC\u00e9imeanna:\n1. Bain an comhth\u00e1th\u00fa Volvo On Call seo.\n2. Cuir an comhth\u00e1th\u00fa Volvo leis tr\u00ed Socruithe > Gl\u00e9asanna & seirbh\u00eds\u00ed > Cuir comhth\u00e1th\u00fa leis > Volvo.\n3. Lean na treoracha socraithe chun f\u00edordheimhni\u00fa a dh\u00e9anamh le do chuntas Volvo.",
|
|
15
|
+
"title": "T\u00e1 Volvo On Call curtha in \u00e1it"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -23,6 +23,7 @@ from homeassistant.components.homeassistant_hardware import silabs_multiprotocol
|
|
|
23
23
|
from homeassistant.components.homeassistant_yellow import hardware as yellow_hardware
|
|
24
24
|
from homeassistant.config_entries import (
|
|
25
25
|
SOURCE_IGNORE,
|
|
26
|
+
SOURCE_ZEROCONF,
|
|
26
27
|
ConfigEntry,
|
|
27
28
|
ConfigEntryBaseFlow,
|
|
28
29
|
ConfigEntryState,
|
|
@@ -183,27 +184,17 @@ class BaseZhaFlow(ConfigEntryBaseFlow):
|
|
|
183
184
|
self._hass = hass
|
|
184
185
|
self._radio_mgr.hass = hass
|
|
185
186
|
|
|
186
|
-
|
|
187
|
+
def _get_config_entry_data(self) -> dict[str, Any]:
|
|
187
188
|
"""Extract ZHA config entry data from the radio manager."""
|
|
188
189
|
assert self._radio_mgr.radio_type is not None
|
|
189
190
|
assert self._radio_mgr.device_path is not None
|
|
190
191
|
assert self._radio_mgr.device_settings is not None
|
|
191
192
|
|
|
192
|
-
try:
|
|
193
|
-
device_path = await self.hass.async_add_executor_job(
|
|
194
|
-
usb.get_serial_by_id, self._radio_mgr.device_path
|
|
195
|
-
)
|
|
196
|
-
except OSError as error:
|
|
197
|
-
raise AbortFlow(
|
|
198
|
-
reason="cannot_resolve_path",
|
|
199
|
-
description_placeholders={"path": self._radio_mgr.device_path},
|
|
200
|
-
) from error
|
|
201
|
-
|
|
202
193
|
return {
|
|
203
194
|
CONF_DEVICE: DEVICE_SCHEMA(
|
|
204
195
|
{
|
|
205
196
|
**self._radio_mgr.device_settings,
|
|
206
|
-
CONF_DEVICE_PATH: device_path,
|
|
197
|
+
CONF_DEVICE_PATH: self._radio_mgr.device_path,
|
|
207
198
|
}
|
|
208
199
|
),
|
|
209
200
|
CONF_RADIO_TYPE: self._radio_mgr.radio_type.name,
|
|
@@ -662,13 +653,8 @@ class ZhaConfigFlowHandler(BaseZhaFlow, ConfigFlow, domain=DOMAIN):
|
|
|
662
653
|
"""Set the flow's unique ID and update the device path in an ignored flow."""
|
|
663
654
|
current_entry = await self.async_set_unique_id(unique_id)
|
|
664
655
|
|
|
665
|
-
if
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
if current_entry.source != SOURCE_IGNORE:
|
|
669
|
-
self._abort_if_unique_id_configured()
|
|
670
|
-
else:
|
|
671
|
-
# Only update the current entry if it is an ignored discovery
|
|
656
|
+
# Only update the current entry if it is an ignored discovery
|
|
657
|
+
if current_entry and current_entry.source == SOURCE_IGNORE:
|
|
672
658
|
self._abort_if_unique_id_configured(
|
|
673
659
|
updates={
|
|
674
660
|
CONF_DEVICE: {
|
|
@@ -703,6 +689,36 @@ class ZhaConfigFlowHandler(BaseZhaFlow, ConfigFlow, domain=DOMAIN):
|
|
|
703
689
|
DOMAIN, include_ignore=False
|
|
704
690
|
)
|
|
705
691
|
|
|
692
|
+
if self._radio_mgr.device_path is not None:
|
|
693
|
+
# Ensure the radio manager device path is unique and will match ZHA's
|
|
694
|
+
try:
|
|
695
|
+
self._radio_mgr.device_path = await self.hass.async_add_executor_job(
|
|
696
|
+
usb.get_serial_by_id, self._radio_mgr.device_path
|
|
697
|
+
)
|
|
698
|
+
except OSError as error:
|
|
699
|
+
raise AbortFlow(
|
|
700
|
+
reason="cannot_resolve_path",
|
|
701
|
+
description_placeholders={"path": self._radio_mgr.device_path},
|
|
702
|
+
) from error
|
|
703
|
+
|
|
704
|
+
# mDNS discovery can advertise the same adapter on multiple IPs or via a
|
|
705
|
+
# hostname, which should be considered a duplicate
|
|
706
|
+
current_device_paths = {self._radio_mgr.device_path}
|
|
707
|
+
|
|
708
|
+
if self.source == SOURCE_ZEROCONF:
|
|
709
|
+
discovery_info = self.init_data
|
|
710
|
+
current_device_paths |= {
|
|
711
|
+
f"socket://{ip}:{discovery_info.port}"
|
|
712
|
+
for ip in discovery_info.ip_addresses
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
for entry in zha_config_entries:
|
|
716
|
+
path = entry.data.get(CONF_DEVICE, {}).get(CONF_DEVICE_PATH)
|
|
717
|
+
|
|
718
|
+
# Abort discovery if the device path is already configured
|
|
719
|
+
if path is not None and path in current_device_paths:
|
|
720
|
+
return self.async_abort(reason="single_instance_allowed")
|
|
721
|
+
|
|
706
722
|
# Without confirmation, discovery can automatically progress into parts of the
|
|
707
723
|
# config flow logic that interacts with hardware.
|
|
708
724
|
if user_input is not None or (
|
|
@@ -873,7 +889,7 @@ class ZhaConfigFlowHandler(BaseZhaFlow, ConfigFlow, domain=DOMAIN):
|
|
|
873
889
|
zha_config_entries = self.hass.config_entries.async_entries(
|
|
874
890
|
DOMAIN, include_ignore=False
|
|
875
891
|
)
|
|
876
|
-
data =
|
|
892
|
+
data = self._get_config_entry_data()
|
|
877
893
|
|
|
878
894
|
if len(zha_config_entries) == 1:
|
|
879
895
|
return self.async_update_reload_and_abort(
|
|
@@ -976,7 +992,7 @@ class ZhaOptionsFlowHandler(BaseZhaFlow, OptionsFlow):
|
|
|
976
992
|
# Avoid creating both `.options` and `.data` by directly writing `data` here
|
|
977
993
|
self.hass.config_entries.async_update_entry(
|
|
978
994
|
entry=self.config_entry,
|
|
979
|
-
data=
|
|
995
|
+
data=self._get_config_entry_data(),
|
|
980
996
|
options=self.config_entry.options,
|
|
981
997
|
)
|
|
982
998
|
|