homeassistant 2025.9.0b2__py3-none-any.whl → 2025.9.0b3__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 (205) hide show
  1. homeassistant/components/airgradient/translations/lt.json +2 -1
  2. homeassistant/components/alexa_devices/translations/cs.json +50 -0
  3. homeassistant/components/alexa_devices/translations/lt.json +47 -0
  4. homeassistant/components/alexa_devices/translations/nl.json +17 -0
  5. homeassistant/components/alexa_devices/translations/pt.json +50 -0
  6. homeassistant/components/alexa_devices/translations/sk.json +50 -0
  7. homeassistant/components/bang_olufsen/translations/lt.json +4 -0
  8. homeassistant/components/bayesian/strings.json +1 -1
  9. homeassistant/components/bayesian/translations/lt.json +23 -4
  10. homeassistant/components/bosch_alarm/translations/lt.json +3 -0
  11. homeassistant/components/bsblan/climate.py +4 -0
  12. homeassistant/components/bsblan/config_flow.py +1 -1
  13. homeassistant/components/bsblan/sensor.py +23 -3
  14. homeassistant/components/bsblan/water_heater.py +22 -2
  15. homeassistant/components/button/translations/lt.json +1 -0
  16. homeassistant/components/devolo_home_network/translations/lt.json +4 -0
  17. homeassistant/components/dominos/translations/lt.json +2 -0
  18. homeassistant/components/dsmr/translations/lt.json +2 -1
  19. homeassistant/components/dsmr_reader/translations/lt.json +1 -0
  20. homeassistant/components/fritz/translations/lt.json +3 -0
  21. homeassistant/components/fritzbox/translations/lt.json +3 -1
  22. homeassistant/components/fritzbox_callmonitor/translations/lt.json +2 -1
  23. homeassistant/components/frontend/manifest.json +1 -1
  24. homeassistant/components/google_travel_time/translations/lt.json +3 -2
  25. homeassistant/components/govee_light_local/__init__.py +6 -1
  26. homeassistant/components/govee_light_local/config_flow.py +7 -12
  27. homeassistant/components/govee_light_local/coordinator.py +2 -3
  28. homeassistant/components/habitica/translations/lt.json +2 -1
  29. homeassistant/components/hassio/translations/lt.json +25 -0
  30. homeassistant/components/homekit/__init__.py +2 -3
  31. homeassistant/components/homekit/services.yaml +7 -3
  32. homeassistant/components/homekit/strings.json +7 -1
  33. homeassistant/components/homekit/translations/cs.json +7 -1
  34. homeassistant/components/homekit/translations/de.json +6 -0
  35. homeassistant/components/homekit/translations/el.json +0 -1
  36. homeassistant/components/homekit/translations/en-GB.json +7 -1
  37. homeassistant/components/homekit/translations/en.json +7 -1
  38. homeassistant/components/homekit/translations/es.json +0 -1
  39. homeassistant/components/homekit/translations/et.json +7 -1
  40. homeassistant/components/homekit/translations/ga.json +0 -1
  41. homeassistant/components/homekit/translations/hu.json +0 -1
  42. homeassistant/components/homekit/translations/it.json +6 -0
  43. homeassistant/components/homekit/translations/ja.json +0 -1
  44. homeassistant/components/homekit/translations/lt.json +7 -1
  45. homeassistant/components/homekit/translations/nl.json +5 -0
  46. homeassistant/components/homekit/translations/pt.json +6 -0
  47. homeassistant/components/homekit/translations/ru.json +0 -1
  48. homeassistant/components/homekit/translations/sk.json +6 -0
  49. homeassistant/components/homekit/translations/sv.json +0 -1
  50. homeassistant/components/homekit/translations/tr.json +0 -1
  51. homeassistant/components/homekit/translations/vi.json +0 -1
  52. homeassistant/components/homekit/translations/zh-Hans.json +6 -1
  53. homeassistant/components/homekit/translations/zh-Hant.json +6 -0
  54. homeassistant/components/hue/translations/ar.json +0 -5
  55. homeassistant/components/hue/translations/bg.json +0 -1
  56. homeassistant/components/hue/translations/ca.json +0 -1
  57. homeassistant/components/hue/translations/cs.json +1 -1
  58. homeassistant/components/hue/translations/cy.json +0 -1
  59. homeassistant/components/hue/translations/da.json +0 -1
  60. homeassistant/components/hue/translations/de.json +1 -1
  61. homeassistant/components/hue/translations/el.json +1 -1
  62. homeassistant/components/hue/translations/en-GB.json +1 -1
  63. homeassistant/components/hue/translations/en.json +1 -1
  64. homeassistant/components/hue/translations/es-419.json +0 -1
  65. homeassistant/components/hue/translations/es.json +0 -1
  66. homeassistant/components/hue/translations/et.json +1 -1
  67. homeassistant/components/hue/translations/fi.json +0 -1
  68. homeassistant/components/hue/translations/fr.json +0 -1
  69. homeassistant/components/hue/translations/ga.json +0 -1
  70. homeassistant/components/hue/translations/he.json +0 -1
  71. homeassistant/components/hue/translations/hu.json +0 -1
  72. homeassistant/components/hue/translations/id.json +0 -1
  73. homeassistant/components/hue/translations/it.json +0 -1
  74. homeassistant/components/hue/translations/ja.json +0 -1
  75. homeassistant/components/hue/translations/ko.json +0 -1
  76. homeassistant/components/hue/translations/lb.json +0 -1
  77. homeassistant/components/hue/translations/lt.json +1 -1
  78. homeassistant/components/hue/translations/nb.json +0 -1
  79. homeassistant/components/hue/translations/nl.json +0 -1
  80. homeassistant/components/hue/translations/nn.json +0 -1
  81. homeassistant/components/hue/translations/pl.json +0 -1
  82. homeassistant/components/hue/translations/pt-BR.json +0 -1
  83. homeassistant/components/hue/translations/pt.json +1 -1
  84. homeassistant/components/hue/translations/ro.json +0 -1
  85. homeassistant/components/hue/translations/ru.json +0 -1
  86. homeassistant/components/hue/translations/sk.json +1 -1
  87. homeassistant/components/hue/translations/sl.json +0 -1
  88. homeassistant/components/hue/translations/sv.json +0 -1
  89. homeassistant/components/hue/translations/tr.json +0 -1
  90. homeassistant/components/hue/translations/uk.json +0 -1
  91. homeassistant/components/hue/translations/vi.json +0 -1
  92. homeassistant/components/hue/translations/zh-Hans.json +0 -1
  93. homeassistant/components/hue/translations/zh-Hant.json +1 -1
  94. homeassistant/components/hue/v2/group.py +67 -12
  95. homeassistant/components/hydrawise/translations/lt.json +2 -1
  96. homeassistant/components/imeon_inverter/const.py +1 -1
  97. homeassistant/components/imeon_inverter/translations/cs.json +1 -0
  98. homeassistant/components/imeon_inverter/translations/de.json +1 -0
  99. homeassistant/components/imeon_inverter/translations/el.json +5 -0
  100. homeassistant/components/imeon_inverter/translations/en-GB.json +1 -0
  101. homeassistant/components/imeon_inverter/translations/et.json +1 -0
  102. homeassistant/components/imeon_inverter/translations/it.json +5 -0
  103. homeassistant/components/imeon_inverter/translations/lt.json +13 -0
  104. homeassistant/components/imeon_inverter/translations/pt.json +1 -0
  105. homeassistant/components/imeon_inverter/translations/sk.json +1 -0
  106. homeassistant/components/imeon_inverter/translations/zh-Hant.json +1 -0
  107. homeassistant/components/insteon/translations/lt.json +6 -2
  108. homeassistant/components/iskra/manifest.json +1 -1
  109. homeassistant/components/lcn/translations/lt.json +2 -0
  110. homeassistant/components/leaone/translations/lt.json +2 -1
  111. homeassistant/components/lg_thinq/translations/lt.json +4 -0
  112. homeassistant/components/luftdaten/translations/lt.json +7 -0
  113. homeassistant/components/matter/translations/lt.json +3 -0
  114. homeassistant/components/mealie/manifest.json +1 -1
  115. homeassistant/components/miele/climate.py +20 -10
  116. homeassistant/components/miele/translations/lt.json +3 -0
  117. homeassistant/components/mqtt/translations/lt.json +8 -2
  118. homeassistant/components/music_assistant/media_browser.py +8 -8
  119. homeassistant/components/music_assistant/translations/lt.json +2 -1
  120. homeassistant/components/onkyo/config_flow.py +1 -1
  121. homeassistant/components/openweathermap/translations/lt.json +2 -1
  122. homeassistant/components/opower/translations/lt.json +1 -0
  123. homeassistant/components/pooldose/entity.py +1 -4
  124. homeassistant/components/pooldose/manifest.json +1 -1
  125. homeassistant/components/pooldose/quality_scale.yaml +13 -27
  126. homeassistant/components/qnap/translations/lt.json +1 -0
  127. homeassistant/components/random/translations/lt.json +1 -1
  128. homeassistant/components/risco/translations/lt.json +8 -0
  129. homeassistant/components/scrape/translations/lt.json +2 -1
  130. homeassistant/components/sensibo/translations/lt.json +5 -0
  131. homeassistant/components/sensor/translations/lt.json +5 -0
  132. homeassistant/components/somfy_mylink/translations/lt.json +4 -2
  133. homeassistant/components/sql/translations/lt.json +2 -1
  134. homeassistant/components/switchbot/translations/lt.json +3 -1
  135. homeassistant/components/tellduslive/translations/lt.json +4 -0
  136. homeassistant/components/template/translations/lt.json +40 -10
  137. homeassistant/components/teslemetry/translations/lt.json +1 -0
  138. homeassistant/components/tuya/translations/lt.json +5 -2
  139. homeassistant/components/unifiprotect/translations/lt.json +3 -0
  140. homeassistant/components/waze_travel_time/translations/lt.json +8 -0
  141. homeassistant/components/waze_travel_time/translations/nl.json +3 -0
  142. homeassistant/components/whois/translations/lt.json +1 -0
  143. homeassistant/components/xiaomi_ble/translations/lt.json +2 -1
  144. homeassistant/components/yalexs_ble/translations/cs.json +16 -1
  145. homeassistant/components/yalexs_ble/translations/el.json +11 -0
  146. homeassistant/components/yalexs_ble/translations/et.json +16 -1
  147. homeassistant/components/yalexs_ble/translations/lt.json +16 -1
  148. homeassistant/components/yalexs_ble/translations/pt.json +16 -1
  149. homeassistant/components/yalexs_ble/translations/sk.json +16 -1
  150. homeassistant/components/zwave_js/translations/lt.json +2 -0
  151. homeassistant/const.py +1 -1
  152. homeassistant/generated/config_flows.py +0 -1
  153. homeassistant/generated/integrations.json +0 -6
  154. homeassistant/package_constraints.txt +1 -1
  155. {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b3.dist-info}/METADATA +1 -1
  156. {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b3.dist-info}/RECORD +161 -205
  157. homeassistant/components/vulcan/__init__.py +0 -48
  158. homeassistant/components/vulcan/calendar.py +0 -176
  159. homeassistant/components/vulcan/config_flow.py +0 -327
  160. homeassistant/components/vulcan/const.py +0 -3
  161. homeassistant/components/vulcan/fetch_data.py +0 -98
  162. homeassistant/components/vulcan/manifest.json +0 -9
  163. homeassistant/components/vulcan/register.py +0 -12
  164. homeassistant/components/vulcan/strings.json +0 -62
  165. homeassistant/components/vulcan/translations/bg.json +0 -37
  166. homeassistant/components/vulcan/translations/ca.json +0 -59
  167. homeassistant/components/vulcan/translations/cs.json +0 -62
  168. homeassistant/components/vulcan/translations/de.json +0 -62
  169. homeassistant/components/vulcan/translations/el.json +0 -61
  170. homeassistant/components/vulcan/translations/en-GB.json +0 -62
  171. homeassistant/components/vulcan/translations/en.json +0 -62
  172. homeassistant/components/vulcan/translations/es.json +0 -62
  173. homeassistant/components/vulcan/translations/et.json +0 -62
  174. homeassistant/components/vulcan/translations/fi.json +0 -59
  175. homeassistant/components/vulcan/translations/fr.json +0 -61
  176. homeassistant/components/vulcan/translations/ga.json +0 -9
  177. homeassistant/components/vulcan/translations/gl.json +0 -7
  178. homeassistant/components/vulcan/translations/he.json +0 -29
  179. homeassistant/components/vulcan/translations/hu.json +0 -62
  180. homeassistant/components/vulcan/translations/id.json +0 -59
  181. homeassistant/components/vulcan/translations/it.json +0 -60
  182. homeassistant/components/vulcan/translations/ja.json +0 -62
  183. homeassistant/components/vulcan/translations/ko.json +0 -59
  184. homeassistant/components/vulcan/translations/lt.json +0 -62
  185. homeassistant/components/vulcan/translations/mk.json +0 -11
  186. homeassistant/components/vulcan/translations/nb.json +0 -59
  187. homeassistant/components/vulcan/translations/nl.json +0 -60
  188. homeassistant/components/vulcan/translations/pl.json +0 -57
  189. homeassistant/components/vulcan/translations/pt-BR.json +0 -58
  190. homeassistant/components/vulcan/translations/pt.json +0 -62
  191. homeassistant/components/vulcan/translations/ro.json +0 -45
  192. homeassistant/components/vulcan/translations/ru.json +0 -62
  193. homeassistant/components/vulcan/translations/sk.json +0 -62
  194. homeassistant/components/vulcan/translations/sl.json +0 -21
  195. homeassistant/components/vulcan/translations/sv.json +0 -62
  196. homeassistant/components/vulcan/translations/tr.json +0 -62
  197. homeassistant/components/vulcan/translations/uk.json +0 -52
  198. homeassistant/components/vulcan/translations/vi.json +0 -15
  199. homeassistant/components/vulcan/translations/zh-Hans.json +0 -62
  200. homeassistant/components/vulcan/translations/zh-Hant.json +0 -62
  201. {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b3.dist-info}/WHEEL +0 -0
  202. {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b3.dist-info}/entry_points.txt +0 -0
  203. {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b3.dist-info}/licenses/LICENSE.md +0 -0
  204. {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b3.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  205. {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b3.dist-info}/top_level.txt +0 -0
@@ -112,6 +112,7 @@
112
112
  "grid_consumption": "\u96fb\u7db2\u8017\u80fd",
113
113
  "grid_injection": "\u96fb\u7db2\u6ce8\u5165",
114
114
  "grid_synchronised_but_not_used": "\u96fb\u7db2\u4e0d\u540c\u6b65\u4f46\u5df2\u4f7f\u7528",
115
+ "not_connected": "\u672a\u9023\u7dda",
115
116
  "unsynchronized": "\u4e0d\u540c\u6b65"
116
117
  }
117
118
  },
@@ -16,7 +16,9 @@
16
16
  "data": {
17
17
  "host": "IP adresas",
18
18
  "port": "Prievadas"
19
- }
19
+ },
20
+ "description": "Konfig\u016bruokite Insteon Hub 1 versij\u0105 (iki 2014 m.).",
21
+ "title": "Insteon Hub 1 versija"
20
22
  },
21
23
  "hubv2": {
22
24
  "data": {
@@ -24,7 +26,9 @@
24
26
  "password": "Slapta\u017eodis",
25
27
  "port": "Prievadas",
26
28
  "username": "Naudotojo vardas"
27
- }
29
+ },
30
+ "description": "Konfig\u016bruokite Insteon Hub 2 versij\u0105.",
31
+ "title": "Insteon Hub 2 versija"
28
32
  },
29
33
  "plm": {
30
34
  "data": {
@@ -7,5 +7,5 @@
7
7
  "integration_type": "hub",
8
8
  "iot_class": "local_polling",
9
9
  "loggers": ["pyiskra"],
10
- "requirements": ["pyiskra==0.1.21"]
10
+ "requirements": ["pyiskra==0.1.26"]
11
11
  }
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "config": {
3
3
  "abort": {
4
+ "already_configured": "PCHK ry\u0161ys naudojant t\u0105 pat\u012f IP adres\u0105 / prievad\u0105 jau sukonfig\u016bruotas.",
4
5
  "reconfigure_successful": "Pakartotinis konfig\u016bravimas buvo s\u0117kmingas"
5
6
  },
6
7
  "error": {
@@ -170,6 +171,7 @@
170
171
  "name": "LED"
171
172
  },
172
173
  "lock_keys": {
174
+ "description": "Nustato rakt\u0173 u\u017erakinimo b\u016bsenas.",
173
175
  "fields": {
174
176
  "address": {
175
177
  "description": "Modulio adresas.",
@@ -2,7 +2,8 @@
2
2
  "config": {
3
3
  "abort": {
4
4
  "already_configured": "Prietaisas jau sukonfig\u016bruotas",
5
- "already_in_progress": "Konfig\u016bracijos procesas jau vyksta"
5
+ "already_in_progress": "Konfig\u016bracijos procesas jau vyksta",
6
+ "no_devices_found": "Diapazone nerasta palaikom\u0173 LeaOne \u012frengini\u0173. Jei \u012frenginys yra diapazone, \u012fsitikinkite, kad jis buvo suaktyvintas per pastar\u0105sias kelias minutes. Jei reikia patikslinti, ar \u012frenginys yra diapazone, atsisi\u0173skite integracijos, kuri teikia j\u016bs\u0173 Bluetooth adapter\u012f arba tarpin\u012f server\u012f, diagnostik\u0105 ir patikrinkite, ar yra LeaOne \u012frenginio MAC adresas."
6
7
  },
7
8
  "flow_title": "{name}",
8
9
  "step": {
@@ -102,6 +102,7 @@
102
102
  "cliff_error": "Sugedo apsaugos nuo kritimo jutiklis",
103
103
  "clutch_error": "Sankabos klaida",
104
104
  "compressor_error": "Kompresoriaus klaida",
105
+ "dispensing_error": "Dozatoriaus klaida",
105
106
  "door_close_error": "U\u017edaryt\u0173 dur\u0173 klaida",
106
107
  "door_lock_error": "Dur\u0173 spynos klaida",
107
108
  "door_open_error": "Durys atidarytos",
@@ -130,6 +131,7 @@
130
131
  "no_battery_error": "I\u0161sikrov\u0119s roboto valiklio akumuliatorius",
131
132
  "no_dust_bin_error": "Dulki\u0173 konteineris ne\u012fd\u0117tas",
132
133
  "no_filter_error": "Filtro klaida",
134
+ "out_of_balance_error": "I\u0161balansuota apkrova",
133
135
  "overfill_error": "Perpildymo klaida",
134
136
  "part_malfunction_error": "AIE klaida",
135
137
  "power_code_connection_error": "Maitinimo laido prijungimo klaida",
@@ -171,6 +173,7 @@
171
173
  "error_during_cleaning": "Valymas sustabdytas d\u0117l klaidos",
172
174
  "error_during_washing": "Skalbimo ma\u0161inoje \u012fvyko klaida",
173
175
  "error_has_occurred": "\u012evyko klaida",
176
+ "frozen_is_complete": "Ice Plus baigtas",
174
177
  "homeguard_is_stopped": "Home Guard sustojo",
175
178
  "lack_of_water": "Vandens bakelyje n\u0117ra vandens",
176
179
  "motion_is_detected": "Nuotrauka siun\u010diama, kai Home Guard metu aptinkamas jud\u0117jimas",
@@ -183,6 +186,7 @@
183
186
  "styling_is_complete": "Stilius baigtas",
184
187
  "time_to_change_filter": "At\u0117jo laikas pakeisti filtr\u0105",
185
188
  "time_to_change_water_filter": "Reikia pakeisti vandens filtr\u0105",
189
+ "time_to_clean": "Savaiminio valymo poreikis",
186
190
  "time_to_clean_filter": "At\u0117jo laikas i\u0161valyti filtr\u0105",
187
191
  "timer_is_complete": "Laikmatis baigtas",
188
192
  "washing_is_complete": "Skalbimas baigtas",
@@ -16,5 +16,12 @@
16
16
  }
17
17
  }
18
18
  }
19
+ },
20
+ "entity": {
21
+ "sensor": {
22
+ "pressure_at_sealevel": {
23
+ "name": "Sl\u0117gis j\u016bros lygyje"
24
+ }
25
+ }
19
26
  }
20
27
  }
@@ -438,6 +438,9 @@
438
438
  "flow": {
439
439
  "name": "Srautas"
440
440
  },
441
+ "hepa_filter_condition": {
442
+ "name": "HEPA filtro b\u016bkl\u0117"
443
+ },
441
444
  "operational_state": {
442
445
  "name": "Veiklos b\u016bkl\u0117",
443
446
  "state": {
@@ -7,5 +7,5 @@
7
7
  "integration_type": "service",
8
8
  "iot_class": "local_polling",
9
9
  "quality_scale": "silver",
10
- "requirements": ["aiomealie==0.10.1"]
10
+ "requirements": ["aiomealie==0.10.2"]
11
11
  }
@@ -8,7 +8,7 @@ import logging
8
8
  from typing import Any, Final, cast
9
9
 
10
10
  import aiohttp
11
- from pymiele import MieleDevice
11
+ from pymiele import MieleDevice, MieleTemperature
12
12
 
13
13
  from homeassistant.components.climate import (
14
14
  ClimateEntity,
@@ -31,6 +31,15 @@ PARALLEL_UPDATES = 1
31
31
  _LOGGER = logging.getLogger(__name__)
32
32
 
33
33
 
34
+ def _get_temperature_value(
35
+ temperatures: list[MieleTemperature], index: int
36
+ ) -> float | None:
37
+ """Return the temperature value for the given index."""
38
+ if len(temperatures) > index:
39
+ return cast(int, temperatures[index].temperature) / 100.0
40
+ return None
41
+
42
+
34
43
  @dataclass(frozen=True, kw_only=True)
35
44
  class MieleClimateDescription(ClimateEntityDescription):
36
45
  """Class describing Miele climate entities."""
@@ -62,11 +71,10 @@ CLIMATE_TYPES: Final[tuple[MieleClimateDefinition, ...]] = (
62
71
  description=MieleClimateDescription(
63
72
  key="thermostat",
64
73
  value_fn=(
65
- lambda value: cast(int, value.state_temperatures[0].temperature) / 100.0
74
+ lambda value: _get_temperature_value(value.state_temperatures, 0)
66
75
  ),
67
76
  target_fn=(
68
- lambda value: cast(int, value.state_target_temperature[0].temperature)
69
- / 100.0
77
+ lambda value: _get_temperature_value(value.state_target_temperature, 0)
70
78
  ),
71
79
  zone=1,
72
80
  ),
@@ -84,11 +92,10 @@ CLIMATE_TYPES: Final[tuple[MieleClimateDefinition, ...]] = (
84
92
  description=MieleClimateDescription(
85
93
  key="thermostat2",
86
94
  value_fn=(
87
- lambda value: cast(int, value.state_temperatures[1].temperature) / 100.0
95
+ lambda value: _get_temperature_value(value.state_temperatures, 1)
88
96
  ),
89
97
  target_fn=(
90
- lambda value: cast(int, value.state_target_temperature[1].temperature)
91
- / 100.0
98
+ lambda value: _get_temperature_value(value.state_target_temperature, 1)
92
99
  ),
93
100
  translation_key="zone_2",
94
101
  zone=2,
@@ -107,11 +114,10 @@ CLIMATE_TYPES: Final[tuple[MieleClimateDefinition, ...]] = (
107
114
  description=MieleClimateDescription(
108
115
  key="thermostat3",
109
116
  value_fn=(
110
- lambda value: cast(int, value.state_temperatures[2].temperature) / 100.0
117
+ lambda value: _get_temperature_value(value.state_temperatures, 2)
111
118
  ),
112
119
  target_fn=(
113
- lambda value: cast(int, value.state_target_temperature[2].temperature)
114
- / 100.0
120
+ lambda value: _get_temperature_value(value.state_target_temperature, 2)
115
121
  ),
116
122
  translation_key="zone_3",
117
123
  zone=3,
@@ -219,6 +225,8 @@ class MieleClimate(MieleEntity, ClimateEntity):
219
225
  @property
220
226
  def max_temp(self) -> float:
221
227
  """Return the maximum target temperature."""
228
+ if len(self.action.target_temperature) < self.entity_description.zone:
229
+ return super().max_temp
222
230
  return cast(
223
231
  float,
224
232
  self.action.target_temperature[self.entity_description.zone - 1].max,
@@ -227,6 +235,8 @@ class MieleClimate(MieleEntity, ClimateEntity):
227
235
  @property
228
236
  def min_temp(self) -> float:
229
237
  """Return the minimum target temperature."""
238
+ if len(self.action.target_temperature) < self.entity_description.zone:
239
+ return super().min_temp
230
240
  return cast(
231
241
  float,
232
242
  self.action.target_temperature[self.entity_description.zone - 1].min,
@@ -372,6 +372,8 @@
372
372
  "chicken_tikka_masala_with_rice": "Vi\u0161tiena Tikka Masala su ry\u017eiais",
373
373
  "chicken_whole": "Vi\u0161tiena",
374
374
  "chinese_cabbage_cut": "Kininiai kop\u016bstai (supjaustyti)",
375
+ "chocolate_hazlenut_cake_one_large": "\u0160okoladinis lazdyno rie\u0161ut\u0173 pyragas (vienas didelis)",
376
+ "chocolate_hazlenut_cake_several_small": "\u0160okoladinis lazdyno rie\u0161ut\u0173 pyragas (keli ma\u017ei)",
375
377
  "chongming_rapid_steam_cooking": "Chongming (greitas virimas garuose)",
376
378
  "chongming_steam_cooking": "Chongming (virimas garuose)",
377
379
  "choux_buns": "Choux bandel\u0117s",
@@ -606,6 +608,7 @@
606
608
  "parsnip_cut_into_batons": "Pastarnokas (supjaustytas grie\u017ein\u0117liais)",
607
609
  "parsnip_diced": "Pastarnokas (supjaustytas kubeliais)",
608
610
  "parsnip_sliced": "Pastarnokas (supjaustytas grie\u017ein\u0117liais)",
611
+ "pasta_paela": "Makaronai/paella",
609
612
  "pears_halved": "Kriau\u0161\u0117s (perpjautos per pus\u0119)",
610
613
  "pears_quartered": "Kriau\u0161\u0117s (ketvir\u010diais)",
611
614
  "pears_to_cook_large_halved": "Kriau\u0161\u0117s (didel\u0117s, perpjautos per pus\u0119)",
@@ -445,7 +445,9 @@
445
445
  },
446
446
  "data_description": {
447
447
  "fan_mode_command_template": "[\u0160ablonas](https://www.home-assistant.io/docs/configuration/templating/#using-command-templates-with-mqtt), skirtas sugeneruoti nauding\u0105j\u0105 apkrov\u0105, kuri bus publikuojama ventiliatoriaus re\u017eimo komand\u0173 temoje.",
448
- "fan_mode_command_topic": "MQTT tema, skirta publikuoti komandas, skirtas pakeisti klimato ventiliatoriaus re\u017eim\u0105. [Su\u017einokite daugiau.] ( {url} #fan_mode_command_topic)"
448
+ "fan_mode_command_topic": "MQTT tema, skirta publikuoti komandas, skirtas pakeisti klimato ventiliatoriaus re\u017eim\u0105. [Su\u017einokite daugiau.] ( {url} #fan_mode_command_topic)",
449
+ "fan_mode_state_template": "Apibr\u0117\u017eia [\u0161ablon\u0105](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt), kad b\u016bt\u0173 galima i\u0161gauti klimato ventiliatoriaus re\u017eimo reik\u0161m\u0119.",
450
+ "fan_mode_state_topic": "MQTT tema u\u017esiprenumeravo klimato ventiliatoriaus re\u017eimo gavim\u0105. [Su\u017einokite daugiau.] ( {url} #fan_mode_state_topic)"
449
451
  },
450
452
  "name": "Ventiliatoriaus re\u017eimo nustatymai"
451
453
  },
@@ -575,6 +577,7 @@
575
577
  "tilt_max": "Did\u017eiausia pakreipimo vert\u0117.",
576
578
  "tilt_min": "Minimali pakreipimo vert\u0117.",
577
579
  "tilt_opened_value": "Reik\u0161m\u0117, kuri bus nusi\u0173sta \u012f \u201epakreipimo komandos tem\u0105\u201c, kai bus atidarytas dangtelio pakreipimas.",
580
+ "tilt_optimistic": "\u017dym\u0117, nurodanti, ar pakreipimas veikia optimistiniu re\u017eimu. Jei pakreipimo b\u016bsenos tema neapibr\u0117\u017eta, pakreipimas pagal numatytuosius nustatymus veikia optimistiniu re\u017eimu. [Su\u017einokite daugiau.]( {url} #tilt_optimistic)",
578
581
  "tilt_status_template": "Apibr\u0117\u017eia [\u0161ablon\u0105](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt), kad b\u016bt\u0173 galima i\u0161gauti pakreipimo b\u016bsenos temos \u017einut\u0119. \u0160ablone yra prieinami \u0161ie kintamieji: `entity_id`, `position_open`, `position_closed`, `tilt_min` ir `tilt_max`. [Su\u017einokite daugiau.]({url}#tilt_status_template)",
579
582
  "tilt_status_topic": "MQTT tema u\u017esiprenumeravo, kad gaut\u0173 pakreipimo b\u016bsenos atnaujinimo reik\u0161mes. [Su\u017einokite daugiau.] ( {url} #tilt_status_topic)"
580
583
  },
@@ -833,6 +836,9 @@
833
836
  "state_unlocked": "B\u016bkl\u0117 \"atrakinta\"",
834
837
  "state_unlocking": "B\u016bkl\u0117 \"atrakina\""
835
838
  },
839
+ "data_description": {
840
+ "state_unlocking": "Naudingoji apkrova, gauta b\u016bsenos temoje, kuri \u017eymi 'atrakinimo' b\u016bsen\u0105."
841
+ },
836
842
  "name": "U\u017erakinti naudingosios apkrovos nustatymus"
837
843
  },
838
844
  "target_humidity_settings": {
@@ -1210,7 +1216,7 @@
1210
1216
  "illuminance": "Ap\u0161vieta",
1211
1217
  "irradiance": "\u0160vitinimas",
1212
1218
  "moisture": "Dr\u0117gm\u0117",
1213
- "monetary": "Balansas",
1219
+ "monetary": "Piniginis balansas",
1214
1220
  "nitrogen_dioxide": "Azoto dioksidas",
1215
1221
  "nitrogen_monoxide": "Azoto monoksidas",
1216
1222
  "nitrous_oxide": "Azoto oksidas",
@@ -70,7 +70,7 @@ LIBRARY_MEDIA_CLASS_MAP = {
70
70
 
71
71
  MEDIA_CONTENT_TYPE_FLAC = "audio/flac"
72
72
  THUMB_SIZE = 200
73
- SORT_NAME_DESC = "sort_name_desc"
73
+ SORT_NAME = "sort_name"
74
74
  LOGGER = logging.getLogger(__name__)
75
75
 
76
76
 
@@ -173,7 +173,7 @@ async def build_playlists_listing(mass: MusicAssistantClient) -> BrowseMedia:
173
173
  # we only grab the first page here because the
174
174
  # HA media browser does not support paging
175
175
  for item in await mass.music.get_library_playlists(
176
- limit=500, order_by=SORT_NAME_DESC
176
+ limit=500, order_by=SORT_NAME
177
177
  )
178
178
  if item.available
179
179
  ],
@@ -225,7 +225,7 @@ async def build_artists_listing(mass: MusicAssistantClient) -> BrowseMedia:
225
225
  # we only grab the first page here because the
226
226
  # HA media browser does not support paging
227
227
  for artist in await mass.music.get_library_artists(
228
- limit=500, order_by=SORT_NAME_DESC
228
+ limit=500, order_by=SORT_NAME
229
229
  )
230
230
  if artist.available
231
231
  ],
@@ -275,7 +275,7 @@ async def build_albums_listing(mass: MusicAssistantClient) -> BrowseMedia:
275
275
  # we only grab the first page here because the
276
276
  # HA media browser does not support paging
277
277
  for album in await mass.music.get_library_albums(
278
- limit=500, order_by=SORT_NAME_DESC
278
+ limit=500, order_by=SORT_NAME
279
279
  )
280
280
  if album.available
281
281
  ],
@@ -323,7 +323,7 @@ async def build_tracks_listing(mass: MusicAssistantClient) -> BrowseMedia:
323
323
  # we only grab the first page here because the
324
324
  # HA media browser does not support paging
325
325
  for track in await mass.music.get_library_tracks(
326
- limit=500, order_by=SORT_NAME_DESC
326
+ limit=500, order_by=SORT_NAME
327
327
  )
328
328
  if track.available
329
329
  ],
@@ -346,7 +346,7 @@ async def build_podcasts_listing(mass: MusicAssistantClient) -> BrowseMedia:
346
346
  # we only grab the first page here because the
347
347
  # HA media browser does not support paging
348
348
  for podcast in await mass.music.get_library_podcasts(
349
- limit=500, order_by=SORT_NAME_DESC
349
+ limit=500, order_by=SORT_NAME
350
350
  )
351
351
  if podcast.available
352
352
  ],
@@ -369,7 +369,7 @@ async def build_audiobooks_listing(mass: MusicAssistantClient) -> BrowseMedia:
369
369
  # we only grab the first page here because the
370
370
  # HA media browser does not support paging
371
371
  for audiobook in await mass.music.get_library_audiobooks(
372
- limit=500, order_by=SORT_NAME_DESC
372
+ limit=500, order_by=SORT_NAME
373
373
  )
374
374
  if audiobook.available
375
375
  ],
@@ -392,7 +392,7 @@ async def build_radio_listing(mass: MusicAssistantClient) -> BrowseMedia:
392
392
  # we only grab the first page here because the
393
393
  # HA media browser does not support paging
394
394
  for track in await mass.music.get_library_radios(
395
- limit=500, order_by=SORT_NAME_DESC
395
+ limit=500, order_by=SORT_NAME
396
396
  )
397
397
  if track.available
398
398
  ],
@@ -231,7 +231,8 @@
231
231
  "description": "Perkelia \u017eaid\u0117jo eil\u0119 kitam \u017eaid\u0117jui.",
232
232
  "fields": {
233
233
  "auto_play": {
234
- "description": "Prad\u0117kite \u017eaisti eil\u0119 tiksliniame grotuve. Nenaudokite numatytosios elgsenos."
234
+ "description": "Prad\u0117kite \u017eaisti eil\u0119 tiksliniame grotuve. Nenaudokite numatytosios elgsenos.",
235
+ "name": "Automatinis paleidimas"
235
236
  },
236
237
  "source_player": {
237
238
  "description": "\u0160altinio medijos grotuvas, kuriame yra norima perkelti eil\u0117. Jei nepateikiama, bus naudojamas pirmas grojantis grotuvas.",
@@ -168,7 +168,7 @@ class OnkyoConfigFlow(ConfigFlow, domain=DOMAIN):
168
168
 
169
169
  self._discovered_infos = {}
170
170
  discovered_names = {}
171
- current_unique_ids = self._async_current_ids()
171
+ current_unique_ids = self._async_current_ids(include_ignore=False)
172
172
  for info in infos:
173
173
  if info.identifier in current_unique_ids:
174
174
  continue
@@ -16,7 +16,8 @@
16
16
  "longitude": "Ilguma",
17
17
  "mode": "Re\u017eimas",
18
18
  "name": "Vardas"
19
- }
19
+ },
20
+ "description": "Nor\u0117dami sugeneruoti API rakt\u0105, \u017er. [integracijos dokumentacij\u0105]( {doc_url} )"
20
21
  }
21
22
  }
22
23
  },
@@ -46,6 +46,7 @@
46
46
  "reauth_confirm": {
47
47
  "data": {
48
48
  "password": "Slapta\u017eodis",
49
+ "totp_secret": "TOTP paslaptis",
49
50
  "username": "Naudotojo vardas"
50
51
  },
51
52
  "data_description": {
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  from typing import Any
6
6
 
7
- from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC, DeviceInfo
7
+ from homeassistant.helpers.device_registry import DeviceInfo
8
8
  from homeassistant.helpers.entity import EntityDescription
9
9
  from homeassistant.helpers.update_coordinator import CoordinatorEntity
10
10
 
@@ -32,9 +32,6 @@ def device_info(info: dict | None, unique_id: str) -> DeviceInfo:
32
32
  else None
33
33
  ),
34
34
  hw_version=info.get("FW_CODE") or None,
35
- connections=(
36
- {(CONNECTION_NETWORK_MAC, str(info["MAC"]))} if info.get("MAC") else set()
37
- ),
38
35
  configuration_url=(
39
36
  f"http://{info['IP']}/index.html" if info.get("IP") else None
40
37
  ),
@@ -5,6 +5,6 @@
5
5
  "config_flow": true,
6
6
  "documentation": "https://www.home-assistant.io/integrations/pooldose",
7
7
  "iot_class": "local_polling",
8
- "quality_scale": "gold",
8
+ "quality_scale": "bronze",
9
9
  "requirements": ["python-pooldose==0.5.0"]
10
10
  }
@@ -17,7 +17,7 @@ rules:
17
17
  docs-removal-instructions: done
18
18
  entity-event-setup:
19
19
  status: exempt
20
- comment: This integration does not subscribe to any events.
20
+ comment: This integration does not explicitly subscribe to any events.
21
21
  entity-unique-id: done
22
22
  has-entity-name: done
23
23
  runtime-data: done
@@ -35,9 +35,7 @@ rules:
35
35
  entity-unavailable: done
36
36
  integration-owner: done
37
37
  log-when-unavailable: done
38
- parallel-updates:
39
- status: exempt
40
- comment: This integration uses a central coordinator to manage updates, which is not compatible with parallel updates.
38
+ parallel-updates: todo
41
39
  reauthentication-flow:
42
40
  status: exempt
43
41
  comment: This integration does not need authentication for the local API.
@@ -45,28 +43,20 @@ rules:
45
43
 
46
44
  # Gold
47
45
  devices: done
48
- diagnostics:
49
- status: exempt
50
- comment: This integration does not provide any diagnostic information, but can provide detailed logs if needed.
46
+ diagnostics: todo
51
47
  discovery-update-info:
52
- status: exempt
53
- comment: This integration does not support discovery features.
48
+ status: todo
49
+ comment: DHCP discovery is possible
54
50
  discovery:
55
- status: exempt
56
- comment: This integration does not support discovery updates since the PoolDose device does not support standard discovery methods.
51
+ status: todo
52
+ comment: DHCP discovery is possible
57
53
  docs-data-update: done
58
- docs-examples:
59
- status: exempt
60
- comment: This integration does not provide any examples, as it is a simple integration that does not require complex configurations.
61
- docs-known-limitations:
62
- status: exempt
63
- comment: This integration has known and documented limitations in frequency of data polling and stability of the connection to the device.
54
+ docs-examples: todo
55
+ docs-known-limitations: todo
64
56
  docs-supported-devices: done
65
57
  docs-supported-functions: done
66
58
  docs-troubleshooting: done
67
- docs-use-cases:
68
- status: exempt
69
- comment: This integration does not provide use cases, as it is a simple integration that does not require complex configurations.
59
+ docs-use-cases: todo
70
60
  dynamic-devices:
71
61
  status: exempt
72
62
  comment: This integration does not support dynamic devices, as it is designed for a single PoolDose device.
@@ -76,9 +66,7 @@ rules:
76
66
  entity-translations: done
77
67
  exception-translations: done
78
68
  icon-translations: done
79
- reconfiguration-flow:
80
- status: exempt
81
- comment: This integration does not support reconfiguration flows, as it is designed for a single PoolDose device with a fixed configuration.
69
+ reconfiguration-flow: todo
82
70
  repair-issues:
83
71
  status: exempt
84
72
  comment: This integration does not provide repair issues, as it is designed for a single PoolDose device with a fixed configuration.
@@ -88,7 +76,5 @@ rules:
88
76
 
89
77
  # Platinum
90
78
  async-dependency: done
91
- inject-websession: done
92
- strict-typing:
93
- status: exempt
94
- comment: Dependency python-pooldose is not strictly typed and does not include a py.typed file.
79
+ inject-websession: todo
80
+ strict-typing: todo
@@ -18,6 +18,7 @@
18
18
  "data_description": {
19
19
  "host": "J\u016bs\u0173 QNAP prietaiso pagrindinio kompiuterio pavadinimas arba IP adresas."
20
20
  },
21
+ "description": "\u0160is jutiklis leid\u017eia gauti \u012fvairi\u0105 statistik\u0105 i\u0161 j\u016bs\u0173 QNAP NAS.",
21
22
  "title": "Prisijunkite prie QNAP prietaiso"
22
23
  }
23
24
  }
@@ -105,7 +105,7 @@
105
105
  "illuminance": "Ap\u0161vieta",
106
106
  "irradiance": "\u0160vitinimas",
107
107
  "moisture": "Dr\u0117gm\u0117",
108
- "monetary": "Balansas",
108
+ "monetary": "Piniginis balansas",
109
109
  "nitrogen_dioxide": "Azoto dioksidas",
110
110
  "nitrogen_monoxide": "Azoto monoksidas",
111
111
  "nitrous_oxide": "Azoto oksidas",
@@ -74,6 +74,13 @@
74
74
  "options": {
75
75
  "step": {
76
76
  "ha_to_risco": {
77
+ "data": {
78
+ "armed_away": "Apsaugoti i\u0161vykus",
79
+ "armed_custom_bypass": "U\u017erakinta su ap\u0117jimu",
80
+ "armed_home": "Apsaugoti namai",
81
+ "armed_night": "Apsaugota naktis"
82
+ },
83
+ "description": "Pasirinkite, kokioje b\u016bsenoje nustatyti Risco signalizacij\u0105, kai \u012fjungiate Home Assistant signalizacijos valdymo pult\u0105.",
77
84
  "title": "Priskirkite \u201eHome Assistant\u201c b\u016bsenas \u012f Risco b\u016bsena"
78
85
  },
79
86
  "init": {
@@ -94,6 +101,7 @@
94
101
  "arm": "Apsaugotas (I\u0160VYK\u0118S)",
95
102
  "partial_arm": "I\u0161 dalies apsaugotas (LIKTI)"
96
103
  },
104
+ "description": "Pasirinkite, koki\u0105 b\u016bsen\u0105 j\u016bs\u0173 Home Assistant signalizacijos valdymo pultas prane\u0161 kiekvienai Risco prane\u0161tai b\u016bsenai.",
97
105
  "title": "Priskirkite \u201eRisco\u201c valstijas \u012f \u201eHome Assistant\u201c valstijas"
98
106
  }
99
107
  }
@@ -164,7 +164,7 @@
164
164
  "illuminance": "Ap\u0161vieta",
165
165
  "irradiance": "\u0160vitinimas",
166
166
  "moisture": "Dr\u0117gm\u0117",
167
- "monetary": "Balansas",
167
+ "monetary": "Piniginis balansas",
168
168
  "nitrogen_dioxide": "Azoto dioksidas",
169
169
  "nitrogen_monoxide": "Azoto monoksidas",
170
170
  "nitrous_oxide": "Azoto oksidas",
@@ -186,6 +186,7 @@
186
186
  "temperature": "Temperat\u016bra",
187
187
  "timestamp": "Laiko \u017eyma",
188
188
  "volatile_organic_compounds": "Lakieji organiniai junginiai",
189
+ "volatile_organic_compounds_parts": "Laki\u0173j\u0173 organini\u0173 jungini\u0173 dalys",
189
190
  "voltage": "\u012etampa",
190
191
  "volume": "Garsas",
191
192
  "volume_flow_rate": "Vandens srauto greitis",
@@ -85,6 +85,11 @@
85
85
  },
86
86
  "swing_horizontal_mode": {
87
87
  "state": {
88
+ "fixedcenter": "Fiksuotas centras",
89
+ "fixedcenterleft": "Fiksuotas centre kair\u0117je",
90
+ "fixedcenterright": "Fiksuotas centre de\u0161in\u0117je",
91
+ "fixedleft": "Fiksuotas kairysis",
92
+ "fixedleftright": "Fiksuotas kairysis de\u0161inysis",
88
93
  "fixedright": "Fiksuotas de\u0161in\u0117je",
89
94
  "rangecenter": "Diapazono centras",
90
95
  "rangefull": "Pilnas diapazonas",
@@ -24,6 +24,7 @@
24
24
  "is_illuminance": "Dabartin\u0117 {entity_name} ap\u0161vieta",
25
25
  "is_irradiance": "Dabartin\u0117 {entity_name} ap\u0161vita",
26
26
  "is_moisture": "Dabartin\u0117 {entity_name} oro dr\u0117gm\u0117",
27
+ "is_monetary": "Dabartinis {entity_name} pinig\u0173 likutis",
27
28
  "is_nitrogen_dioxide": "Dabartinis {entity_name} azoto dioksido koncentracijos lygis",
28
29
  "is_nitrogen_monoxide": "Dabartinis {entity_name} azoto monoksido koncentracijos lygis",
29
30
  "is_nitrous_oxide": "Dabartinis {entity_name} azoto oksido koncentracijos lygis",
@@ -84,6 +85,7 @@
84
85
  "illuminance": "{entity_name} ap\u0161vieta pakito",
85
86
  "irradiance": "{entity_name} ap\u0161vitos poky\u010diai",
86
87
  "moisture": "{entity_name} oro dr\u0117gm\u0117s poky\u010diai",
88
+ "monetary": "{entity_name} piniginio balanso poky\u010diai",
87
89
  "nitrogen_dioxide": "{entity_name} azoto dioksido koncentracijos poky\u010diai",
88
90
  "nitrogen_monoxide": "{entity_name} azoto monoksido koncentracijos poky\u010diai",
89
91
  "nitrous_oxide": "{entity_name} azoto oksido koncentracijos poky\u010diai",
@@ -219,6 +221,9 @@
219
221
  "moisture": {
220
222
  "name": "Dr\u0117gm\u0117"
221
223
  },
224
+ "monetary": {
225
+ "name": "Piniginis balansas"
226
+ },
222
227
  "nitrogen_dioxide": {
223
228
  "name": "Azoto dioksidas"
224
229
  },
@@ -31,13 +31,15 @@
31
31
  "init": {
32
32
  "data": {
33
33
  "target_id": "Konfig\u016bruokite dangtelio parinktis."
34
- }
34
+ },
35
+ "title": "Sukonfig\u016bruokite MyLink parinktis"
35
36
  },
36
37
  "target_config": {
37
38
  "data": {
38
39
  "reverse": "Vir\u0161elis apverstas"
39
40
  },
40
- "description": "Konfig\u016bruokite \u201e{target_name}\u201c parinktis"
41
+ "description": "Konfig\u016bruokite \u201e{target_name}\u201c parinktis",
42
+ "title": "Konfig\u016bruoti MyLink vir\u0161el\u012f"
41
43
  }
42
44
  }
43
45
  }
@@ -102,7 +102,7 @@
102
102
  "illuminance": "Ap\u0161vieta",
103
103
  "irradiance": "\u0160vitinimas",
104
104
  "moisture": "Dr\u0117gm\u0117",
105
- "monetary": "Balansas",
105
+ "monetary": "Piniginis balansas",
106
106
  "nitrogen_dioxide": "Azoto dioksidas",
107
107
  "nitrogen_monoxide": "Azoto monoksidas",
108
108
  "nitrous_oxide": "Azoto oksidas",
@@ -125,6 +125,7 @@
125
125
  "temperature": "Temperat\u016bra",
126
126
  "timestamp": "Laiko \u017eyma",
127
127
  "volatile_organic_compounds": "Lakieji organiniai junginiai",
128
+ "volatile_organic_compounds_parts": "Laki\u0173j\u0173 organini\u0173 jungini\u0173 dalys",
128
129
  "voltage": "\u012etampa",
129
130
  "volume": "Garsas",
130
131
  "volume_flow_rate": "Vandens srauto greitis",