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.
Files changed (112) hide show
  1. homeassistant/components/alexa_devices/config_flow.py +3 -1
  2. homeassistant/components/alexa_devices/manifest.json +1 -1
  3. homeassistant/components/alexa_devices/strings.json +1 -0
  4. homeassistant/components/alexa_devices/translations/en.json +2 -1
  5. homeassistant/components/androidtv_remote/translations/ko.json +1 -1
  6. homeassistant/components/aosmith/translations/ko.json +1 -1
  7. homeassistant/components/aussie_broadband/translations/ko.json +1 -1
  8. homeassistant/components/bluetooth/manifest.json +1 -1
  9. homeassistant/components/bosch_shc/translations/ko.json +1 -1
  10. homeassistant/components/brunt/translations/ko.json +1 -1
  11. homeassistant/components/caldav/translations/ko.json +1 -1
  12. homeassistant/components/electric_kiwi/translations/ko.json +1 -1
  13. homeassistant/components/fan/translations/sv.json +1 -1
  14. homeassistant/components/fibaro/translations/ko.json +1 -1
  15. homeassistant/components/fitbit/translations/ko.json +1 -1
  16. homeassistant/components/geocaching/translations/ko.json +1 -1
  17. homeassistant/components/google/translations/ko.json +1 -1
  18. homeassistant/components/google_generative_ai_conversation/config_flow.py +5 -4
  19. homeassistant/components/google_photos/translations/ko.json +1 -1
  20. homeassistant/components/google_sheets/translations/ko.json +1 -1
  21. homeassistant/components/google_tasks/translations/ko.json +1 -1
  22. homeassistant/components/homeassistant_hardware/translations/sv.json +1 -0
  23. homeassistant/components/homeassistant_sky_connect/translations/sv.json +2 -0
  24. homeassistant/components/homeassistant_yellow/translations/sv.json +1 -0
  25. homeassistant/components/huawei_lte/translations/ko.json +1 -1
  26. homeassistant/components/icloud/translations/ko.json +1 -1
  27. homeassistant/components/jellyfin/translations/ko.json +1 -1
  28. homeassistant/components/jvc_projector/translations/ko.json +1 -1
  29. homeassistant/components/laundrify/translations/ko.json +1 -1
  30. homeassistant/components/ld2410_ble/manifest.json +1 -1
  31. homeassistant/components/led_ble/manifest.json +1 -1
  32. homeassistant/components/lidarr/translations/ko.json +1 -1
  33. homeassistant/components/litterrobot/translations/en-GB.json +1 -0
  34. homeassistant/components/litterrobot/translations/ko.json +1 -1
  35. homeassistant/components/litterrobot/translations/zh-Hans.json +1 -0
  36. homeassistant/components/litterrobot/translations/zh-Hant.json +1 -0
  37. homeassistant/components/lyric/translations/ko.json +1 -1
  38. homeassistant/components/melcloud/translations/ko.json +1 -1
  39. homeassistant/components/metoffice/sensor.py +8 -7
  40. homeassistant/components/mikrotik/translations/ko.json +1 -1
  41. homeassistant/components/music_assistant/entity.py +1 -1
  42. homeassistant/components/music_assistant/manifest.json +1 -1
  43. homeassistant/components/music_assistant/media_browser.py +1 -7
  44. homeassistant/components/music_assistant/media_player.py +6 -6
  45. homeassistant/components/nest/translations/ko.json +1 -1
  46. homeassistant/components/netatmo/translations/ko.json +1 -1
  47. homeassistant/components/notion/translations/ko.json +1 -1
  48. homeassistant/components/nuki/translations/ko.json +1 -1
  49. homeassistant/components/opentherm_gw/translations/sv.json +3 -0
  50. homeassistant/components/openuv/translations/ko.json +1 -1
  51. homeassistant/components/opower/translations/ko.json +1 -1
  52. homeassistant/components/overkiz/translations/zh-Hans.json +1 -0
  53. homeassistant/components/private_ble_device/manifest.json +1 -1
  54. homeassistant/components/pushover/translations/ko.json +1 -1
  55. homeassistant/components/radarr/translations/ko.json +1 -1
  56. homeassistant/components/renault/translations/ko.json +1 -1
  57. homeassistant/components/reolink/translations/pl.json +2 -1
  58. homeassistant/components/ridwell/translations/ko.json +1 -1
  59. homeassistant/components/ring/translations/ko.json +1 -1
  60. homeassistant/components/roborock/translations/ko.json +1 -1
  61. homeassistant/components/schlage/translations/ko.json +1 -1
  62. homeassistant/components/sense/translations/ko.json +1 -1
  63. homeassistant/components/shelly/translations/ko.json +1 -1
  64. homeassistant/components/skybell/translations/ko.json +1 -1
  65. homeassistant/components/sleepiq/translations/ko.json +1 -1
  66. homeassistant/components/smarttub/translations/ko.json +1 -1
  67. homeassistant/components/sonarr/translations/ko.json +1 -1
  68. homeassistant/components/spotify/translations/ko.json +1 -1
  69. homeassistant/components/steam_online/translations/ko.json +1 -1
  70. homeassistant/components/surepetcare/translations/ko.json +1 -1
  71. homeassistant/components/switch/translations/sv.json +1 -1
  72. homeassistant/components/switchbot/translations/cs.json +0 -1
  73. homeassistant/components/switchbot/translations/en-GB.json +5 -0
  74. homeassistant/components/switchbot/translations/es.json +1 -1
  75. homeassistant/components/switchbot/translations/et.json +0 -1
  76. homeassistant/components/switchbot/translations/hu.json +0 -1
  77. homeassistant/components/switchbot/translations/it.json +0 -1
  78. homeassistant/components/switchbot/translations/ja.json +1 -4
  79. homeassistant/components/switchbot/translations/mk.json +1 -4
  80. homeassistant/components/switchbot/translations/nl.json +0 -1
  81. homeassistant/components/switchbot/translations/pt.json +0 -1
  82. homeassistant/components/switchbot/translations/ru.json +0 -1
  83. homeassistant/components/switchbot/translations/sk.json +0 -1
  84. homeassistant/components/switchbot/translations/sv.json +0 -1
  85. homeassistant/components/switchbot/translations/zh-Hant.json +0 -1
  86. homeassistant/components/tesla_fleet/translations/en-GB.json +3 -0
  87. homeassistant/components/tesla_fleet/translations/zh-Hans.json +3 -0
  88. homeassistant/components/tesla_fleet/translations/zh-Hant.json +3 -0
  89. homeassistant/components/tessie/translations/ko.json +1 -1
  90. homeassistant/components/timer/translations/ko.json +2 -1
  91. homeassistant/components/totalconnect/translations/ko.json +1 -1
  92. homeassistant/components/transmission/translations/ko.json +1 -1
  93. homeassistant/components/twitch/translations/ko.json +1 -1
  94. homeassistant/components/uptimerobot/translations/ko.json +1 -1
  95. homeassistant/components/vacuum/translations/sv.json +1 -1
  96. homeassistant/components/voip/manifest.json +1 -1
  97. homeassistant/components/watttime/translations/ko.json +1 -1
  98. homeassistant/components/webdav/translations/zh-Hans.json +1 -0
  99. homeassistant/components/whirlpool/translations/zh-Hans.json +1 -0
  100. homeassistant/components/withings/translations/ko.json +1 -1
  101. homeassistant/components/xiaomi_miio/translations/ko.json +1 -1
  102. homeassistant/components/yolink/translations/ko.json +1 -1
  103. homeassistant/components/youtube/translations/ko.json +1 -1
  104. homeassistant/const.py +1 -1
  105. homeassistant/package_constraints.txt +1 -1
  106. {homeassistant-2025.7.0b6.dist-info → homeassistant-2025.7.0b8.dist-info}/METADATA +1 -1
  107. {homeassistant-2025.7.0b6.dist-info → homeassistant-2025.7.0b8.dist-info}/RECORD +112 -112
  108. {homeassistant-2025.7.0b6.dist-info → homeassistant-2025.7.0b8.dist-info}/WHEEL +0 -0
  109. {homeassistant-2025.7.0b6.dist-info → homeassistant-2025.7.0b8.dist-info}/entry_points.txt +0 -0
  110. {homeassistant-2025.7.0b6.dist-info → homeassistant-2025.7.0b8.dist-info}/licenses/LICENSE.md +0 -0
  111. {homeassistant-2025.7.0b6.dist-info → homeassistant-2025.7.0b8.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  112. {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()
@@ -8,5 +8,5 @@
8
8
  "iot_class": "cloud_polling",
9
9
  "loggers": ["aioamazondevices"],
10
10
  "quality_scale": "bronze",
11
- "requirements": ["aioamazondevices==3.1.22"]
11
+ "requirements": ["aioamazondevices==3.2.1"]
12
12
  }
@@ -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": "\uc5f0\ub3d9 \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
19
+ "title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
20
20
  },
21
21
  "service": {
22
22
  "data": {
@@ -19,7 +19,7 @@
19
19
  "bleak-retry-connector==3.9.0",
20
20
  "bluetooth-adapters==0.21.4",
21
21
  "bluetooth-auto-recovery==1.5.2",
22
- "bluetooth-data-tools==1.28.1",
22
+ "bluetooth-data-tools==1.28.2",
23
23
  "dbus-fast==2.43.0",
24
24
  "habluetooth==3.49.0"
25
25
  ]
@@ -27,7 +27,7 @@
27
27
  "data": {
28
28
  "host": "\ud638\uc2a4\ud2b8"
29
29
  },
30
- "title": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
30
+ "title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
31
31
  },
32
32
  "user": {
33
33
  "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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
25
+ "title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
26
26
  }
27
27
  }
28
28
  }
@@ -127,7 +127,7 @@
127
127
  "name": "St\u00e4ll in f\u00f6rinst\u00e4llt l\u00e4ge"
128
128
  },
129
129
  "toggle": {
130
- "description": "Sl\u00e5r p\u00e5/av fl\u00e4kten.",
130
+ "description": "Sl\u00e5r p\u00e5/av en fl\u00e4kt.",
131
131
  "name": "V\u00e4xla"
132
132
  },
133
133
  "turn_off": {
@@ -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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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.display_name,
333
+ label=api_model.name.lstrip("models/"),
334
334
  value=api_model.name,
335
335
  )
336
- for api_model in sorted(api_models, key=lambda x: x.display_name or "")
336
+ for api_model in sorted(
337
+ api_models, key=lambda x: x.name.lstrip("models/") or ""
338
+ )
337
339
  if (
338
- api_model.display_name
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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.1", "ld2410-ble==0.1.1"]
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.1", "led-ble==1.1.7"]
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
20
+ "title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
21
21
  },
22
22
  "user": {
23
23
  "data": {
@@ -82,6 +82,7 @@
82
82
  "name": "Hopper status",
83
83
  "state": {
84
84
  "disabled": "Disabled",
85
+ "empty": "Empty",
85
86
  "enabled": "Enabled",
86
87
  "motor_disconnected": "Motor disconnected",
87
88
  "motor_fault_short": "Motor shorted",
@@ -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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\u6599\u6597\u72b6\u6001",
83
83
  "state": {
84
84
  "disabled": "\u5df2\u7981\u7528",
85
+ "empty": "\u7a7a",
85
86
  "enabled": "\u5df2\u542f\u7528",
86
87
  "motor_disconnected": "\u7535\u673a\u65ad\u5f00",
87
88
  "motor_fault_short": "\u7535\u673a\u77ed\u8def",
@@ -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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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
- value = get_attribute(
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.entity_description.native_attr_name == "significantWeatherCode"
244
- and value is not None
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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.display_name,
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.0"],
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.state is not None:
254
- self._attr_state = MediaPlayerState(player.state.value)
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.group_childs:
274
- group_members = player.group_childs
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.group_childs
276
+ group_members = parent.group_members
277
277
 
278
- # translate MA group_childs to HA group_members as entity id's
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
19
+ "title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
20
20
  },
21
21
  "user": {
22
22
  "data": {
@@ -355,6 +355,9 @@
355
355
  }
356
356
  },
357
357
  "exceptions": {
358
+ "change_hvac_mode_not_supported": {
359
+ "message": "\u00c4ndring av HVAC-l\u00e4ge st\u00f6ds inte."
360
+ },
358
361
  "invalid_gateway_id": {
359
362
  "message": "Gateway {gw_id} hittades inte eller ej inl\u00e4st!"
360
363
  }
@@ -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": "\ud1b5\ud569\uad6c\uc131\uc694\uc18c \uc7ac\uc778\uc99d\ud558\uae30"
16
+ "title": "{name}\uc758 \uc778\uc99d\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4"
17
17
  },
18
18
  "user": {
19
19
  "data": {