homeassistant 2025.7.0b6__py3-none-any.whl → 2025.7.0b8__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.
- homeassistant/components/alexa_devices/config_flow.py +3 -1
- homeassistant/components/alexa_devices/manifest.json +1 -1
- homeassistant/components/alexa_devices/strings.json +1 -0
- homeassistant/components/alexa_devices/translations/en.json +2 -1
- homeassistant/components/androidtv_remote/translations/ko.json +1 -1
- homeassistant/components/aosmith/translations/ko.json +1 -1
- homeassistant/components/aussie_broadband/translations/ko.json +1 -1
- homeassistant/components/bluetooth/manifest.json +1 -1
- homeassistant/components/bosch_shc/translations/ko.json +1 -1
- homeassistant/components/brunt/translations/ko.json +1 -1
- homeassistant/components/caldav/translations/ko.json +1 -1
- homeassistant/components/electric_kiwi/translations/ko.json +1 -1
- homeassistant/components/fan/translations/sv.json +1 -1
- homeassistant/components/fibaro/translations/ko.json +1 -1
- homeassistant/components/fitbit/translations/ko.json +1 -1
- homeassistant/components/geocaching/translations/ko.json +1 -1
- homeassistant/components/google/translations/ko.json +1 -1
- homeassistant/components/google_generative_ai_conversation/config_flow.py +5 -4
- homeassistant/components/google_photos/translations/ko.json +1 -1
- homeassistant/components/google_sheets/translations/ko.json +1 -1
- homeassistant/components/google_tasks/translations/ko.json +1 -1
- homeassistant/components/homeassistant_hardware/translations/sv.json +1 -0
- homeassistant/components/homeassistant_sky_connect/translations/sv.json +2 -0
- homeassistant/components/homeassistant_yellow/translations/sv.json +1 -0
- homeassistant/components/huawei_lte/translations/ko.json +1 -1
- homeassistant/components/icloud/translations/ko.json +1 -1
- homeassistant/components/jellyfin/translations/ko.json +1 -1
- homeassistant/components/jvc_projector/translations/ko.json +1 -1
- homeassistant/components/laundrify/translations/ko.json +1 -1
- homeassistant/components/ld2410_ble/manifest.json +1 -1
- homeassistant/components/led_ble/manifest.json +1 -1
- homeassistant/components/lidarr/translations/ko.json +1 -1
- homeassistant/components/litterrobot/translations/en-GB.json +1 -0
- homeassistant/components/litterrobot/translations/ko.json +1 -1
- homeassistant/components/litterrobot/translations/zh-Hans.json +1 -0
- homeassistant/components/litterrobot/translations/zh-Hant.json +1 -0
- homeassistant/components/lyric/translations/ko.json +1 -1
- homeassistant/components/melcloud/translations/ko.json +1 -1
- homeassistant/components/metoffice/sensor.py +8 -7
- homeassistant/components/mikrotik/translations/ko.json +1 -1
- homeassistant/components/music_assistant/entity.py +1 -1
- homeassistant/components/music_assistant/manifest.json +1 -1
- homeassistant/components/music_assistant/media_browser.py +1 -7
- homeassistant/components/music_assistant/media_player.py +6 -6
- homeassistant/components/nest/translations/ko.json +1 -1
- homeassistant/components/netatmo/translations/ko.json +1 -1
- homeassistant/components/notion/translations/ko.json +1 -1
- homeassistant/components/nuki/translations/ko.json +1 -1
- homeassistant/components/opentherm_gw/translations/sv.json +3 -0
- homeassistant/components/openuv/translations/ko.json +1 -1
- homeassistant/components/opower/translations/ko.json +1 -1
- homeassistant/components/overkiz/translations/zh-Hans.json +1 -0
- homeassistant/components/private_ble_device/manifest.json +1 -1
- homeassistant/components/pushover/translations/ko.json +1 -1
- homeassistant/components/radarr/translations/ko.json +1 -1
- homeassistant/components/renault/translations/ko.json +1 -1
- homeassistant/components/reolink/translations/pl.json +2 -1
- homeassistant/components/ridwell/translations/ko.json +1 -1
- homeassistant/components/ring/translations/ko.json +1 -1
- homeassistant/components/roborock/translations/ko.json +1 -1
- homeassistant/components/schlage/translations/ko.json +1 -1
- homeassistant/components/sense/translations/ko.json +1 -1
- homeassistant/components/shelly/translations/ko.json +1 -1
- homeassistant/components/skybell/translations/ko.json +1 -1
- homeassistant/components/sleepiq/translations/ko.json +1 -1
- homeassistant/components/smarttub/translations/ko.json +1 -1
- homeassistant/components/sonarr/translations/ko.json +1 -1
- homeassistant/components/spotify/translations/ko.json +1 -1
- homeassistant/components/steam_online/translations/ko.json +1 -1
- homeassistant/components/surepetcare/translations/ko.json +1 -1
- homeassistant/components/switch/translations/sv.json +1 -1
- homeassistant/components/switchbot/translations/cs.json +0 -1
- homeassistant/components/switchbot/translations/en-GB.json +5 -0
- homeassistant/components/switchbot/translations/es.json +1 -1
- homeassistant/components/switchbot/translations/et.json +0 -1
- homeassistant/components/switchbot/translations/hu.json +0 -1
- homeassistant/components/switchbot/translations/it.json +0 -1
- homeassistant/components/switchbot/translations/ja.json +1 -4
- homeassistant/components/switchbot/translations/mk.json +1 -4
- homeassistant/components/switchbot/translations/nl.json +0 -1
- homeassistant/components/switchbot/translations/pt.json +0 -1
- homeassistant/components/switchbot/translations/ru.json +0 -1
- homeassistant/components/switchbot/translations/sk.json +0 -1
- homeassistant/components/switchbot/translations/sv.json +0 -1
- homeassistant/components/switchbot/translations/zh-Hant.json +0 -1
- homeassistant/components/tesla_fleet/translations/en-GB.json +3 -0
- homeassistant/components/tesla_fleet/translations/zh-Hans.json +3 -0
- homeassistant/components/tesla_fleet/translations/zh-Hant.json +3 -0
- homeassistant/components/tessie/translations/ko.json +1 -1
- homeassistant/components/timer/translations/ko.json +2 -1
- homeassistant/components/totalconnect/translations/ko.json +1 -1
- homeassistant/components/transmission/translations/ko.json +1 -1
- homeassistant/components/twitch/translations/ko.json +1 -1
- homeassistant/components/uptimerobot/translations/ko.json +1 -1
- homeassistant/components/vacuum/translations/sv.json +1 -1
- homeassistant/components/voip/manifest.json +1 -1
- homeassistant/components/watttime/translations/ko.json +1 -1
- homeassistant/components/webdav/translations/zh-Hans.json +1 -0
- homeassistant/components/whirlpool/translations/zh-Hans.json +1 -0
- homeassistant/components/withings/translations/ko.json +1 -1
- homeassistant/components/xiaomi_miio/translations/ko.json +1 -1
- homeassistant/components/yolink/translations/ko.json +1 -1
- homeassistant/components/youtube/translations/ko.json +1 -1
- homeassistant/const.py +1 -1
- homeassistant/package_constraints.txt +1 -1
- {homeassistant-2025.7.0b6.dist-info → homeassistant-2025.7.0b8.dist-info}/METADATA +1 -1
- {homeassistant-2025.7.0b6.dist-info → homeassistant-2025.7.0b8.dist-info}/RECORD +112 -112
- {homeassistant-2025.7.0b6.dist-info → homeassistant-2025.7.0b8.dist-info}/WHEEL +0 -0
- {homeassistant-2025.7.0b6.dist-info → homeassistant-2025.7.0b8.dist-info}/entry_points.txt +0 -0
- {homeassistant-2025.7.0b6.dist-info → homeassistant-2025.7.0b8.dist-info}/licenses/LICENSE.md +0 -0
- {homeassistant-2025.7.0b6.dist-info → homeassistant-2025.7.0b8.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
- {homeassistant-2025.7.0b6.dist-info → homeassistant-2025.7.0b8.dist-info}/top_level.txt +0 -0
|
@@ -5,7 +5,7 @@ from __future__ import annotations
|
|
|
5
5
|
from typing import Any
|
|
6
6
|
|
|
7
7
|
from aioamazondevices.api import AmazonEchoApi
|
|
8
|
-
from aioamazondevices.exceptions import CannotAuthenticate, CannotConnect
|
|
8
|
+
from aioamazondevices.exceptions import CannotAuthenticate, CannotConnect, WrongCountry
|
|
9
9
|
import voluptuous as vol
|
|
10
10
|
|
|
11
11
|
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
|
|
@@ -36,6 +36,8 @@ class AmazonDevicesConfigFlow(ConfigFlow, domain=DOMAIN):
|
|
|
36
36
|
errors["base"] = "cannot_connect"
|
|
37
37
|
except CannotAuthenticate:
|
|
38
38
|
errors["base"] = "invalid_auth"
|
|
39
|
+
except WrongCountry:
|
|
40
|
+
errors["base"] = "wrong_country"
|
|
39
41
|
else:
|
|
40
42
|
await self.async_set_unique_id(data["customer_info"]["user_id"])
|
|
41
43
|
self._abort_if_unique_id_configured()
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"error": {
|
|
34
34
|
"cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
|
|
35
35
|
"invalid_auth": "[%key:common::config_flow::error::invalid_auth%]",
|
|
36
|
+
"wrong_country": "Wrong country selected. Please select the country where your Amazon account is registered.",
|
|
36
37
|
"unknown": "[%key:common::config_flow::error::unknown%]"
|
|
37
38
|
}
|
|
38
39
|
},
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
"error": {
|
|
17
17
|
"cannot_connect": "Failed to connect",
|
|
18
18
|
"invalid_auth": "Invalid authentication",
|
|
19
|
-
"unknown": "Unexpected error"
|
|
19
|
+
"unknown": "Unexpected error",
|
|
20
|
+
"wrong_country": "Wrong country selected. Please select the country where your Amazon account is registered."
|
|
20
21
|
},
|
|
21
22
|
"flow_title": "{username}",
|
|
22
23
|
"step": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"description": "Android TV\uc5d0 \ud45c\uc2dc\ub418\ub294 \ud398\uc5b4\ub9c1 \ucf54\ub4dc ({name})\ub97c \uc785\ub825\ud569\ub2c8\ub2e4."
|
|
21
21
|
},
|
|
22
22
|
"reauth_confirm": {
|
|
23
|
-
"title": "\
|
|
23
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
24
24
|
},
|
|
25
25
|
"user": {
|
|
26
26
|
"data": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"password": "\uc554\ud638"
|
|
15
15
|
},
|
|
16
16
|
"description": "{email}\uc758 \uc554\ud638\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uc138\uc694.",
|
|
17
|
-
"title": "\
|
|
17
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
18
18
|
},
|
|
19
19
|
"user": {
|
|
20
20
|
"data": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"password": "\uc554\ud638"
|
|
17
17
|
},
|
|
18
18
|
"description": "{username}\uc758 \uc554\ud638 \uc5c5\ub370\uc774\ud2b8",
|
|
19
|
-
"title": "\
|
|
19
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
20
20
|
},
|
|
21
21
|
"service": {
|
|
22
22
|
"data": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"password": "\uc554\ud638"
|
|
16
16
|
},
|
|
17
17
|
"description": "{username}\uc758 \uc554\ud638\ub97c \ub2e4\uc2dc \uc785\ub825\ud558\uc138\uc694.",
|
|
18
|
-
"title": "\
|
|
18
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
19
19
|
},
|
|
20
20
|
"user": {
|
|
21
21
|
"data": {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"password": "\uc554\ud638"
|
|
19
19
|
},
|
|
20
20
|
"description": "{username}\uc758 \uc554\ud638\uac00 \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4.",
|
|
21
|
-
"title": "\
|
|
21
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
22
22
|
},
|
|
23
23
|
"user": {
|
|
24
24
|
"data": {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
"reauth_confirm": {
|
|
24
24
|
"description": "Electric Kiwi \ud1b5\ud569\uad6c\uc131\uc694\uc18c\uc5d0\uc11c \uacc4\uc815\uc744 \ub2e4\uc2dc \uc778\uc99d\ud574\uc57c \ud569\ub2c8\ub2e4",
|
|
25
|
-
"title": "\
|
|
25
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"password": "\uc554\ud638"
|
|
16
16
|
},
|
|
17
17
|
"description": "{username}\uc758 \uc554\ud638\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uc138\uc694.",
|
|
18
|
-
"title": "\
|
|
18
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
19
19
|
},
|
|
20
20
|
"user": {
|
|
21
21
|
"data": {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"reauth_confirm": {
|
|
29
29
|
"description": "Fitbit \ud1b5\ud569\uad6c\uc131\uc694\uc18c\ub97c \uc704\ud574\uc11c\ub294 \uacc4\uc815\uc744 \ub2e4\uc2dc \uc778\uc99d\ud574\uc57c \ud569\ub2c8\ub2e4.",
|
|
30
|
-
"title": "\
|
|
30
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
},
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"reauth_confirm": {
|
|
23
23
|
"description": "Geocaching \ud1b5\ud569\uad6c\uc131\uc694\uc18c\ub294 \uacc4\uc815\uc744 \ub2e4\uc2dc \uc778\uc99d\ud574\uc57c \ud569\ub2c8\ub2e4",
|
|
24
|
-
"title": "\
|
|
24
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
},
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"reauth_confirm": {
|
|
30
30
|
"description": "Google \uce98\ub9b0\ub354 \ud1b5\ud569\uad6c\uc131\uc694\uc18c\uc5d0\uc11c \uacc4\uc815\uc744 \ub2e4\uc2dc \uc778\uc99d\ud574\uc57c \ud569\ub2c8\ub2e4.",
|
|
31
|
-
"title": "\
|
|
31
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
},
|
|
@@ -330,13 +330,14 @@ async def google_generative_ai_config_option_schema(
|
|
|
330
330
|
api_models = [api_model async for api_model in api_models_pager]
|
|
331
331
|
models = [
|
|
332
332
|
SelectOptionDict(
|
|
333
|
-
label=api_model.
|
|
333
|
+
label=api_model.name.lstrip("models/"),
|
|
334
334
|
value=api_model.name,
|
|
335
335
|
)
|
|
336
|
-
for api_model in sorted(
|
|
336
|
+
for api_model in sorted(
|
|
337
|
+
api_models, key=lambda x: x.name.lstrip("models/") or ""
|
|
338
|
+
)
|
|
337
339
|
if (
|
|
338
|
-
api_model.
|
|
339
|
-
and api_model.name
|
|
340
|
+
api_model.name
|
|
340
341
|
and ("tts" in api_model.name) == (subentry_type == "tts")
|
|
341
342
|
and "vision" not in api_model.name
|
|
342
343
|
and api_model.supported_actions
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
"reauth_confirm": {
|
|
14
14
|
"description": "Google Photos \ud1b5\ud569\uad6c\uc131\uc694\uc18c\ub97c \uc704\ud574\uc11c\ub294 \uacc4\uc815\uc744 \ub2e4\uc2dc \uc778\uc99d\ud574\uc57c \ud569\ub2c8\ub2e4.",
|
|
15
|
-
"title": "\
|
|
15
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
},
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"reauth_confirm": {
|
|
30
30
|
"description": "Google Sheets \ud1b5\ud569\uad6c\uc131\uc694\uc18c\uc5d0\uc11c \uacc4\uc815\uc744 \uc7ac\uc778\uc99d\ud574\uc57c \ud569\ub2c8\ub2e4.",
|
|
31
|
-
"title": "\
|
|
31
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
},
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"reauth_confirm": {
|
|
29
29
|
"description": "Google Tasks \ud1b5\ud569\uc740 \uacc4\uc815\uc744 \ub2e4\uc2dc \uc778\uc99d\ud574\uc57c \ud569\ub2c8\ub2e4.",
|
|
30
|
-
"title": "\
|
|
30
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"options": {
|
|
4
4
|
"abort": {
|
|
5
5
|
"fw_download_failed": "Kunde inte ladda ner firmware {firmware_name} f\u00f6r din {model}. Kontrollera att Home Assistant har tillg\u00e5ng till internet och f\u00f6rs\u00f6k igen.",
|
|
6
|
+
"fw_install_failed": "{firmware_name}-firmware kunde inte installeras, kontrollera Home Assistant-loggarna f\u00f6r mer information.",
|
|
6
7
|
"not_hassio_thread": "Till\u00e4gget OpenThread Border Router kan endast installeras med Home Assistant OS. Om du vill anv\u00e4nda {model} som en Thread Border Router, flasha den fasta programvaran manuellt med hj\u00e4lp av [web flasher]({docs_web_flasher_url}) och st\u00e4ll in OpenThread Border Router f\u00f6r att kommunicera med den.",
|
|
7
8
|
"otbr_addon_already_running": "Till\u00e4gget OpenThread-gr\u00e4nsrouter \u00e4r redan ig\u00e5ng, det kan inte installeras igen.",
|
|
8
9
|
"otbr_still_using_stick": "Denna {model} anv\u00e4nds av till\u00e4gget OpenThread-gr\u00e4nsrouter. Om du anv\u00e4nder Thread-n\u00e4tverket, se till att du har alternativa gr\u00e4nsroutrar. Avinstallera till\u00e4gget och f\u00f6rs\u00f6k igen.",
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
"addon_set_config_failed": "Misslyckades med att spara konfigurationen f\u00f6r {addon_name}.",
|
|
8
8
|
"addon_start_failed": "Misslyckades att starta till\u00e4gget {addon_name}.",
|
|
9
9
|
"fw_download_failed": "Kunde inte ladda ner firmware {firmware_name} f\u00f6r din {model}. Kontrollera att Home Assistant har tillg\u00e5ng till internet och f\u00f6rs\u00f6k igen.",
|
|
10
|
+
"fw_install_failed": "{firmware_name}-firmware kunde inte installeras, kontrollera Home Assistant-loggarna f\u00f6r mer information.",
|
|
10
11
|
"not_hassio": "H\u00e5rdvarualternativen kan endast konfigureras p\u00e5 Home Assistant OS-installationer.",
|
|
11
12
|
"not_hassio_thread": "Till\u00e4gget OpenThread Border Router kan endast installeras med Home Assistant OS. Om du vill anv\u00e4nda {model} som en Thread Border Router, flasha den fasta programvaran manuellt med hj\u00e4lp av [web flasher]({docs_web_flasher_url}) och st\u00e4ll in OpenThread Border Router f\u00f6r att kommunicera med den.",
|
|
12
13
|
"otbr_addon_already_running": "Till\u00e4gget OpenThread-gr\u00e4nsrouter \u00e4r redan ig\u00e5ng, det kan inte installeras igen.",
|
|
@@ -66,6 +67,7 @@
|
|
|
66
67
|
"addon_set_config_failed": "Misslyckades med att spara konfigurationen f\u00f6r {addon_name}.",
|
|
67
68
|
"addon_start_failed": "Misslyckades att starta till\u00e4gget {addon_name}.",
|
|
68
69
|
"fw_download_failed": "Kunde inte ladda ner firmware {firmware_name} f\u00f6r din {model}. Kontrollera att Home Assistant har tillg\u00e5ng till internet och f\u00f6rs\u00f6k igen.",
|
|
70
|
+
"fw_install_failed": "{firmware_name}-firmware kunde inte installeras, kontrollera Home Assistant-loggarna f\u00f6r mer information.",
|
|
69
71
|
"not_hassio": "H\u00e5rdvarualternativen kan endast konfigureras p\u00e5 Home Assistant OS-installationer.",
|
|
70
72
|
"not_hassio_thread": "Till\u00e4gget OpenThread Border Router kan endast installeras med Home Assistant OS. Om du vill anv\u00e4nda {model} som en Thread Border Router, flasha den fasta programvaran manuellt med hj\u00e4lp av [web flasher]({docs_web_flasher_url}) och st\u00e4ll in OpenThread Border Router f\u00f6r att kommunicera med den.",
|
|
71
73
|
"otbr_addon_already_running": "Till\u00e4gget OpenThread-gr\u00e4nsrouter \u00e4r redan ig\u00e5ng, det kan inte installeras igen.",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"addon_set_config_failed": "Misslyckades med att spara konfigurationen f\u00f6r {addon_name}.",
|
|
15
15
|
"addon_start_failed": "Misslyckades att starta till\u00e4gget {addon_name}.",
|
|
16
16
|
"fw_download_failed": "Kunde inte ladda ner firmware {firmware_name} f\u00f6r din {model}. Kontrollera att Home Assistant har tillg\u00e5ng till internet och f\u00f6rs\u00f6k igen.",
|
|
17
|
+
"fw_install_failed": "{firmware_name}-firmware kunde inte installeras, kontrollera Home Assistant-loggarna f\u00f6r mer information.",
|
|
17
18
|
"not_hassio": "H\u00e5rdvarualternativen kan endast konfigureras p\u00e5 Home Assistant OS-installationer.",
|
|
18
19
|
"not_hassio_thread": "Till\u00e4gget OpenThread Border Router kan endast installeras med Home Assistant OS. Om du vill anv\u00e4nda {model} som en Thread Border Router, flasha den fasta programvaran manuellt med hj\u00e4lp av [web flasher]({docs_web_flasher_url}) och st\u00e4ll in OpenThread Border Router f\u00f6r att kommunicera med den.",
|
|
19
20
|
"otbr_addon_already_running": "Till\u00e4gget OpenThread-gr\u00e4nsrouter \u00e4r redan ig\u00e5ng, det kan inte installeras igen.",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"username": "\uc0ac\uc6a9\uc790 \uc774\ub984"
|
|
27
27
|
},
|
|
28
28
|
"description": "\uc7a5\uce58 \uc561\uc138\uc2a4 \uc790\uaca9 \uc99d\uba85\uc744 \uc785\ub825\ud569\ub2c8\ub2e4.",
|
|
29
|
-
"title": "\
|
|
29
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
30
30
|
},
|
|
31
31
|
"user": {
|
|
32
32
|
"data": {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"step": {
|
|
14
14
|
"reauth_confirm": {
|
|
15
15
|
"description": "{username}\uc5d0 \ub300\ud574 \uc774\uc804\uc5d0 \uc785\ub825\ud55c \uc554\ud638\uac00 \ub354 \uc774\uc0c1 \uc791\ub3d9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc774 \ud1b5\ud569\uad6c\uc131\uc694\uc18c\ub97c \uacc4\uc18d \uc0ac\uc6a9\ud558\ub824\uba74 \uc554\ud638\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uc2ed\uc2dc\uc624.",
|
|
16
|
-
"title": "\
|
|
16
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
17
17
|
},
|
|
18
18
|
"trusted_device": {
|
|
19
19
|
"data": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"password": "\uc554\ud638"
|
|
16
16
|
},
|
|
17
17
|
"description": "Jellyfin \ud1b5\ud569\uad6c\uc131\uc694\uc18c\ub97c \uc704\ud574\uc11c\ub294 \uacc4\uc815\uc744 \ub2e4\uc2dc \uc778\uc99d\ud574\uc57c \ud569\ub2c8\ub2e4.",
|
|
18
|
-
"title": "\
|
|
18
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
19
19
|
},
|
|
20
20
|
"user": {
|
|
21
21
|
"data": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"password": "\uc554\ud638"
|
|
17
17
|
},
|
|
18
18
|
"description": "\uc554\ud638 \uc778\uc99d \uc2e4\ud328",
|
|
19
|
-
"title": "\
|
|
19
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
20
20
|
},
|
|
21
21
|
"user": {
|
|
22
22
|
"data": {
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
},
|
|
20
20
|
"reauth_confirm": {
|
|
21
21
|
"description": "laundrify \ud1b5\ud569\uad6c\uc131\uc694\uc18c\ub97c \ub2e4\uc2dc \uc778\uc99d\ud574\uc57c \ud569\ub2c8\ub2e4.",
|
|
22
|
-
"title": "\
|
|
22
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -20,5 +20,5 @@
|
|
|
20
20
|
"documentation": "https://www.home-assistant.io/integrations/ld2410_ble",
|
|
21
21
|
"integration_type": "device",
|
|
22
22
|
"iot_class": "local_push",
|
|
23
|
-
"requirements": ["bluetooth-data-tools==1.28.
|
|
23
|
+
"requirements": ["bluetooth-data-tools==1.28.2", "ld2410-ble==0.1.1"]
|
|
24
24
|
}
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
"dependencies": ["bluetooth_adapters"],
|
|
36
36
|
"documentation": "https://www.home-assistant.io/integrations/led_ble",
|
|
37
37
|
"iot_class": "local_polling",
|
|
38
|
-
"requirements": ["bluetooth-data-tools==1.28.
|
|
38
|
+
"requirements": ["bluetooth-data-tools==1.28.2", "led-ble==1.1.7"]
|
|
39
39
|
}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"api_key": "API \ud0a4"
|
|
18
18
|
},
|
|
19
19
|
"description": "Lidarr \ud1b5\ud569\uad6c\uc131\uc694\uc18c\ub294 Lidarr API\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc218\ub3d9\uc73c\ub85c \uc7ac\uc778\uc99d\ud574\uc57c \ud569\ub2c8\ub2e4.",
|
|
20
|
-
"title": "\
|
|
20
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
21
21
|
},
|
|
22
22
|
"user": {
|
|
23
23
|
"data": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"password": "\uc554\ud638"
|
|
16
16
|
},
|
|
17
17
|
"description": "{username}\uc758 \uc554\ud638\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uc138\uc694.",
|
|
18
|
-
"title": "\
|
|
18
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
19
19
|
},
|
|
20
20
|
"user": {
|
|
21
21
|
"data": {
|
|
@@ -82,6 +82,7 @@
|
|
|
82
82
|
"name": "\u88dc\u7802\u5668\u72c0\u614b",
|
|
83
83
|
"state": {
|
|
84
84
|
"disabled": "\u5df2\u95dc\u9589",
|
|
85
|
+
"empty": "\u8017\u76e1",
|
|
85
86
|
"enabled": "\u5df2\u555f\u7528",
|
|
86
87
|
"motor_disconnected": "\u99ac\u9054\u65b7\u7dda",
|
|
87
88
|
"motor_fault_short": "\u99ac\u9054\u77ed\u8def",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
},
|
|
19
19
|
"reauth_confirm": {
|
|
20
20
|
"description": "Lyric \ud1b5\ud569\uad6c\uc131\uc694\uc18c\ub294 \uacc4\uc815\uc744 \ub2e4\uc2dc \uc778\uc99d\ud574\uc57c \ud569\ub2c8\ub2e4.",
|
|
21
|
-
"title": "\
|
|
21
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
},
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"password": "\uc554\ud638",
|
|
16
16
|
"username": "\uc774\uba54\uc77c"
|
|
17
17
|
},
|
|
18
|
-
"title": "\
|
|
18
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
19
19
|
},
|
|
20
20
|
"user": {
|
|
21
21
|
"data": {
|
|
@@ -9,6 +9,7 @@ from datapoint.Forecast import Forecast
|
|
|
9
9
|
|
|
10
10
|
from homeassistant.components.sensor import (
|
|
11
11
|
DOMAIN as SENSOR_DOMAIN,
|
|
12
|
+
EntityCategory,
|
|
12
13
|
SensorDeviceClass,
|
|
13
14
|
SensorEntity,
|
|
14
15
|
SensorEntityDescription,
|
|
@@ -59,6 +60,7 @@ SENSOR_TYPES: tuple[MetOfficeSensorEntityDescription, ...] = (
|
|
|
59
60
|
native_attr_name="name",
|
|
60
61
|
name="Station name",
|
|
61
62
|
icon="mdi:label-outline",
|
|
63
|
+
entity_category=EntityCategory.DIAGNOSTIC,
|
|
62
64
|
entity_registry_enabled_default=False,
|
|
63
65
|
),
|
|
64
66
|
MetOfficeSensorEntityDescription(
|
|
@@ -235,14 +237,13 @@ class MetOfficeCurrentSensor(
|
|
|
235
237
|
@property
|
|
236
238
|
def native_value(self) -> StateType:
|
|
237
239
|
"""Return the state of the sensor."""
|
|
238
|
-
|
|
239
|
-
self.coordinator.data.now(), self.entity_description.native_attr_name
|
|
240
|
-
)
|
|
240
|
+
native_attr = self.entity_description.native_attr_name
|
|
241
241
|
|
|
242
|
-
if
|
|
243
|
-
self.
|
|
244
|
-
|
|
245
|
-
)
|
|
242
|
+
if native_attr == "name":
|
|
243
|
+
return str(self.coordinator.data.name)
|
|
244
|
+
|
|
245
|
+
value = get_attribute(self.coordinator.data.now(), native_attr)
|
|
246
|
+
if native_attr == "significantWeatherCode" and value is not None:
|
|
246
247
|
value = CONDITION_MAP.get(value)
|
|
247
248
|
|
|
248
249
|
return value
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"password": "\uc554\ud638"
|
|
16
16
|
},
|
|
17
17
|
"description": "{username}\uc758 \uc554\ud638\uac00 \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4.",
|
|
18
|
-
"title": "\
|
|
18
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
19
19
|
},
|
|
20
20
|
"user": {
|
|
21
21
|
"data": {
|
|
@@ -34,7 +34,7 @@ class MusicAssistantEntity(Entity):
|
|
|
34
34
|
identifiers={(DOMAIN, player_id)},
|
|
35
35
|
manufacturer=self.player.device_info.manufacturer or provider.name,
|
|
36
36
|
model=self.player.device_info.model or self.player.name,
|
|
37
|
-
name=self.player.
|
|
37
|
+
name=self.player.name,
|
|
38
38
|
configuration_url=f"{mass.server_url}/#/settings/editplayer/{player_id}",
|
|
39
39
|
)
|
|
40
40
|
|
|
@@ -7,6 +7,6 @@
|
|
|
7
7
|
"documentation": "https://www.home-assistant.io/integrations/music_assistant",
|
|
8
8
|
"iot_class": "local_push",
|
|
9
9
|
"loggers": ["music_assistant"],
|
|
10
|
-
"requirements": ["music-assistant-client==1.2.
|
|
10
|
+
"requirements": ["music-assistant-client==1.2.3"],
|
|
11
11
|
"zeroconf": ["_mass._tcp.local."]
|
|
12
12
|
}
|
|
@@ -6,11 +6,7 @@ import logging
|
|
|
6
6
|
from typing import TYPE_CHECKING, Any, cast
|
|
7
7
|
|
|
8
8
|
from music_assistant_models.enums import MediaType as MASSMediaType
|
|
9
|
-
from music_assistant_models.media_items import
|
|
10
|
-
BrowseFolder,
|
|
11
|
-
MediaItemType,
|
|
12
|
-
SearchResults,
|
|
13
|
-
)
|
|
9
|
+
from music_assistant_models.media_items import MediaItemType, SearchResults
|
|
14
10
|
|
|
15
11
|
from homeassistant.components import media_source
|
|
16
12
|
from homeassistant.components.media_player import (
|
|
@@ -549,8 +545,6 @@ def _process_search_results(
|
|
|
549
545
|
|
|
550
546
|
# Add available items to results
|
|
551
547
|
for item in items:
|
|
552
|
-
if TYPE_CHECKING:
|
|
553
|
-
assert not isinstance(item, BrowseFolder)
|
|
554
548
|
if not item.available:
|
|
555
549
|
continue
|
|
556
550
|
|
|
@@ -250,8 +250,8 @@ class MusicAssistantPlayer(MusicAssistantEntity, MediaPlayerEntity):
|
|
|
250
250
|
# update generic attributes
|
|
251
251
|
if player.powered and active_queue is not None:
|
|
252
252
|
self._attr_state = MediaPlayerState(active_queue.state.value)
|
|
253
|
-
if player.powered and player.
|
|
254
|
-
self._attr_state = MediaPlayerState(player.
|
|
253
|
+
if player.powered and player.playback_state is not None:
|
|
254
|
+
self._attr_state = MediaPlayerState(player.playback_state.value)
|
|
255
255
|
else:
|
|
256
256
|
self._attr_state = MediaPlayerState(STATE_OFF)
|
|
257
257
|
# active source and source list (translate to HA source names)
|
|
@@ -270,12 +270,12 @@ class MusicAssistantPlayer(MusicAssistantEntity, MediaPlayerEntity):
|
|
|
270
270
|
self._attr_source = active_source_name
|
|
271
271
|
|
|
272
272
|
group_members: list[str] = []
|
|
273
|
-
if player.
|
|
274
|
-
group_members = player.
|
|
273
|
+
if player.group_members:
|
|
274
|
+
group_members = player.group_members
|
|
275
275
|
elif player.synced_to and (parent := self.mass.players.get(player.synced_to)):
|
|
276
|
-
group_members = parent.
|
|
276
|
+
group_members = parent.group_members
|
|
277
277
|
|
|
278
|
-
# translate MA
|
|
278
|
+
# translate MA group_members to HA group_members as entity id's
|
|
279
279
|
entity_registry = er.async_get(self.hass)
|
|
280
280
|
group_members_entity_ids: list[str] = [
|
|
281
281
|
entity_id
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
},
|
|
53
53
|
"reauth_confirm": {
|
|
54
54
|
"description": "Nest \ud1b5\ud569\uad6c\uc131\uc694\uc18c\ub294 \uacc4\uc815\uc744 \ub2e4\uc2dc \uc778\uc99d\ud574\uc57c \ud569\ub2c8\ub2e4",
|
|
55
|
-
"title": "\
|
|
55
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
},
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
},
|
|
21
21
|
"reauth_confirm": {
|
|
22
22
|
"description": "Netatmo \ud1b5\ud569\uad6c\uc131\uc694\uc18c\uc5d0\uc11c \uacc4\uc815\uc744 \uc7ac\uc778\uc99d\ud574\uc57c \ud569\ub2c8\ub2e4.",
|
|
23
|
-
"title": "\
|
|
23
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
},
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"password": "\uc554\ud638"
|
|
15
15
|
},
|
|
16
16
|
"description": "{username} \uc758 \uc554\ud638\ub97c \ub2e4\uc2dc \uc785\ub825\ud558\uc138\uc694.",
|
|
17
|
-
"title": "\
|
|
17
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
18
18
|
},
|
|
19
19
|
"user": {
|
|
20
20
|
"data": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"token": "\uc561\uc138\uc2a4 \ud1a0\ud070"
|
|
17
17
|
},
|
|
18
18
|
"description": "Nuki \ud1b5\ud569\uad6c\uc131\uc694\uc18c\ub294 \ube0c\ub9ac\uc9c0\ub85c \ub2e4\uc2dc \uc778\uc99d\ud574\uc57c \ud569\ub2c8\ub2e4.",
|
|
19
|
-
"title": "\
|
|
19
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
20
20
|
},
|
|
21
21
|
"user": {
|
|
22
22
|
"data": {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"api_key": "API \ud0a4"
|
|
14
14
|
},
|
|
15
15
|
"description": "{latitude} , {longitude} \uc5d0 \ub300\ud55c API \ud0a4\ub97c \ub2e4\uc2dc \uc785\ub825\ud558\uc2ed\uc2dc\uc624.",
|
|
16
|
-
"title": "\
|
|
16
|
+
"title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
|
|
17
17
|
},
|
|
18
18
|
"user": {
|
|
19
19
|
"data": {
|