homeassistant 2025.9.0b2__py3-none-any.whl → 2025.9.0b4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. homeassistant/components/ai_task/translations/pl.json +28 -0
  2. homeassistant/components/airgradient/translations/lt.json +2 -1
  3. homeassistant/components/aladdin_connect/translations/he.json +28 -0
  4. homeassistant/components/alexa_devices/translations/cs.json +50 -0
  5. homeassistant/components/alexa_devices/translations/ga.json +47 -0
  6. homeassistant/components/alexa_devices/translations/lt.json +47 -0
  7. homeassistant/components/alexa_devices/translations/nl.json +17 -0
  8. homeassistant/components/alexa_devices/translations/pt.json +50 -0
  9. homeassistant/components/alexa_devices/translations/sk.json +50 -0
  10. homeassistant/components/alexa_devices/translations/zh-Hans.json +40 -0
  11. homeassistant/components/august/translations/he.json +25 -1
  12. homeassistant/components/bang_olufsen/translations/lt.json +4 -0
  13. homeassistant/components/bayesian/strings.json +1 -1
  14. homeassistant/components/bayesian/translations/he.json +96 -0
  15. homeassistant/components/bayesian/translations/lt.json +23 -4
  16. homeassistant/components/bayesian/translations/sv.json +7 -0
  17. homeassistant/components/binary_sensor/translations/sv.json +1 -1
  18. homeassistant/components/bosch_alarm/translations/lt.json +3 -0
  19. homeassistant/components/bsblan/climate.py +4 -0
  20. homeassistant/components/bsblan/config_flow.py +1 -1
  21. homeassistant/components/bsblan/sensor.py +23 -3
  22. homeassistant/components/bsblan/water_heater.py +22 -2
  23. homeassistant/components/button/translations/lt.json +1 -0
  24. homeassistant/components/devolo_home_network/translations/lt.json +4 -0
  25. homeassistant/components/dominos/translations/lt.json +2 -0
  26. homeassistant/components/dsmr/translations/lt.json +2 -1
  27. homeassistant/components/dsmr_reader/translations/ga.json +3 -0
  28. homeassistant/components/dsmr_reader/translations/lt.json +1 -0
  29. homeassistant/components/elkm1/translations/ga.json +18 -0
  30. homeassistant/components/energy/translations/ga.json +6 -1
  31. homeassistant/components/energyzero/translations/ga.json +25 -0
  32. homeassistant/components/environment_canada/translations/ga.json +5 -0
  33. homeassistant/components/escea/translations/ga.json +5 -0
  34. homeassistant/components/fireservicerota/translations/ga.json +17 -0
  35. homeassistant/components/flux_led/translations/ga.json +12 -1
  36. homeassistant/components/forked_daapd/translations/ga.json +32 -1
  37. homeassistant/components/foscam/translations/ga.json +10 -0
  38. homeassistant/components/fritz/translations/lt.json +3 -0
  39. homeassistant/components/fritzbox/translations/lt.json +3 -1
  40. homeassistant/components/fritzbox_callmonitor/translations/ga.json +1 -0
  41. homeassistant/components/fritzbox_callmonitor/translations/lt.json +2 -1
  42. homeassistant/components/fronius/translations/ga.json +15 -0
  43. homeassistant/components/frontend/manifest.json +1 -1
  44. homeassistant/components/frontier_silicon/translations/ga.json +7 -1
  45. homeassistant/components/fully_kiosk/translations/ga.json +17 -1
  46. homeassistant/components/google_travel_time/translations/lt.json +3 -2
  47. homeassistant/components/govee_light_local/__init__.py +6 -1
  48. homeassistant/components/govee_light_local/config_flow.py +7 -12
  49. homeassistant/components/govee_light_local/coordinator.py +2 -3
  50. homeassistant/components/habitica/translations/lt.json +2 -1
  51. homeassistant/components/hassio/translations/he.json +4 -0
  52. homeassistant/components/hassio/translations/lt.json +25 -0
  53. homeassistant/components/homekit/__init__.py +2 -3
  54. homeassistant/components/homekit/services.yaml +7 -3
  55. homeassistant/components/homekit/strings.json +7 -1
  56. homeassistant/components/homekit/translations/cs.json +7 -1
  57. homeassistant/components/homekit/translations/de.json +6 -0
  58. homeassistant/components/homekit/translations/el.json +0 -1
  59. homeassistant/components/homekit/translations/en-GB.json +7 -1
  60. homeassistant/components/homekit/translations/en.json +7 -1
  61. homeassistant/components/homekit/translations/es.json +0 -1
  62. homeassistant/components/homekit/translations/et.json +7 -1
  63. homeassistant/components/homekit/translations/ga.json +0 -1
  64. homeassistant/components/homekit/translations/he.json +7 -0
  65. homeassistant/components/homekit/translations/hu.json +0 -1
  66. homeassistant/components/homekit/translations/it.json +6 -0
  67. homeassistant/components/homekit/translations/ja.json +0 -1
  68. homeassistant/components/homekit/translations/lt.json +7 -1
  69. homeassistant/components/homekit/translations/nl.json +5 -0
  70. homeassistant/components/homekit/translations/pt.json +6 -0
  71. homeassistant/components/homekit/translations/ru.json +0 -1
  72. homeassistant/components/homekit/translations/sk.json +6 -0
  73. homeassistant/components/homekit/translations/sv.json +0 -1
  74. homeassistant/components/homekit/translations/tr.json +0 -1
  75. homeassistant/components/homekit/translations/vi.json +0 -1
  76. homeassistant/components/homekit/translations/zh-Hans.json +7 -1
  77. homeassistant/components/homekit/translations/zh-Hant.json +6 -0
  78. homeassistant/components/hue/translations/ar.json +0 -5
  79. homeassistant/components/hue/translations/bg.json +0 -1
  80. homeassistant/components/hue/translations/ca.json +0 -1
  81. homeassistant/components/hue/translations/cs.json +1 -1
  82. homeassistant/components/hue/translations/cy.json +0 -1
  83. homeassistant/components/hue/translations/da.json +0 -1
  84. homeassistant/components/hue/translations/de.json +1 -1
  85. homeassistant/components/hue/translations/el.json +1 -1
  86. homeassistant/components/hue/translations/en-GB.json +1 -1
  87. homeassistant/components/hue/translations/en.json +1 -1
  88. homeassistant/components/hue/translations/es-419.json +0 -1
  89. homeassistant/components/hue/translations/es.json +0 -1
  90. homeassistant/components/hue/translations/et.json +1 -1
  91. homeassistant/components/hue/translations/fi.json +0 -1
  92. homeassistant/components/hue/translations/fr.json +0 -1
  93. homeassistant/components/hue/translations/ga.json +0 -1
  94. homeassistant/components/hue/translations/he.json +0 -1
  95. homeassistant/components/hue/translations/hu.json +0 -1
  96. homeassistant/components/hue/translations/id.json +0 -1
  97. homeassistant/components/hue/translations/it.json +0 -1
  98. homeassistant/components/hue/translations/ja.json +0 -1
  99. homeassistant/components/hue/translations/ko.json +0 -1
  100. homeassistant/components/hue/translations/lb.json +0 -1
  101. homeassistant/components/hue/translations/lt.json +1 -1
  102. homeassistant/components/hue/translations/nb.json +0 -1
  103. homeassistant/components/hue/translations/nl.json +1 -1
  104. homeassistant/components/hue/translations/nn.json +0 -1
  105. homeassistant/components/hue/translations/pl.json +0 -1
  106. homeassistant/components/hue/translations/pt-BR.json +0 -1
  107. homeassistant/components/hue/translations/pt.json +1 -1
  108. homeassistant/components/hue/translations/ro.json +0 -1
  109. homeassistant/components/hue/translations/ru.json +0 -1
  110. homeassistant/components/hue/translations/sk.json +1 -1
  111. homeassistant/components/hue/translations/sl.json +0 -1
  112. homeassistant/components/hue/translations/sv.json +0 -1
  113. homeassistant/components/hue/translations/tr.json +0 -1
  114. homeassistant/components/hue/translations/uk.json +0 -1
  115. homeassistant/components/hue/translations/vi.json +0 -1
  116. homeassistant/components/hue/translations/zh-Hans.json +1 -1
  117. homeassistant/components/hue/translations/zh-Hant.json +1 -1
  118. homeassistant/components/hue/v2/group.py +67 -12
  119. homeassistant/components/husqvarna_automower_ble/config_flow.py +24 -11
  120. homeassistant/components/husqvarna_automower_ble/manifest.json +1 -1
  121. homeassistant/components/husqvarna_automower_ble/translations/he.json +4 -0
  122. homeassistant/components/hydrawise/translations/lt.json +2 -1
  123. homeassistant/components/imeon_inverter/const.py +1 -1
  124. homeassistant/components/imeon_inverter/translations/cs.json +1 -0
  125. homeassistant/components/imeon_inverter/translations/de.json +1 -0
  126. homeassistant/components/imeon_inverter/translations/el.json +5 -0
  127. homeassistant/components/imeon_inverter/translations/en-GB.json +1 -0
  128. homeassistant/components/imeon_inverter/translations/et.json +1 -0
  129. homeassistant/components/imeon_inverter/translations/it.json +5 -0
  130. homeassistant/components/imeon_inverter/translations/lt.json +13 -0
  131. homeassistant/components/imeon_inverter/translations/pt.json +1 -0
  132. homeassistant/components/imeon_inverter/translations/sk.json +1 -0
  133. homeassistant/components/imeon_inverter/translations/zh-Hans.json +1 -0
  134. homeassistant/components/imeon_inverter/translations/zh-Hant.json +1 -0
  135. homeassistant/components/insteon/translations/lt.json +6 -2
  136. homeassistant/components/iskra/manifest.json +1 -1
  137. homeassistant/components/lcn/translations/lt.json +2 -0
  138. homeassistant/components/leaone/translations/lt.json +2 -1
  139. homeassistant/components/lg_thinq/translations/lt.json +4 -0
  140. homeassistant/components/lifx/translations/de.json +6 -6
  141. homeassistant/components/luftdaten/translations/lt.json +7 -0
  142. homeassistant/components/matter/translations/he.json +48 -0
  143. homeassistant/components/matter/translations/lt.json +3 -0
  144. homeassistant/components/mealie/manifest.json +1 -1
  145. homeassistant/components/media_player/translations/he.json +6 -1
  146. homeassistant/components/miele/climate.py +20 -10
  147. homeassistant/components/miele/translations/lt.json +3 -0
  148. homeassistant/components/mqtt/translations/fr.json +1 -0
  149. homeassistant/components/mqtt/translations/he.json +38 -0
  150. homeassistant/components/mqtt/translations/lt.json +8 -2
  151. homeassistant/components/mqtt/translations/sv.json +1 -1
  152. homeassistant/components/music_assistant/media_browser.py +8 -8
  153. homeassistant/components/music_assistant/translations/lt.json +2 -1
  154. homeassistant/components/niko_home_control/translations/he.json +7 -1
  155. homeassistant/components/onkyo/config_flow.py +1 -1
  156. homeassistant/components/openweathermap/translations/lt.json +2 -1
  157. homeassistant/components/opower/translations/lt.json +1 -0
  158. homeassistant/components/pooldose/entity.py +1 -4
  159. homeassistant/components/pooldose/manifest.json +1 -1
  160. homeassistant/components/pooldose/quality_scale.yaml +13 -27
  161. homeassistant/components/pooldose/translations/he.json +48 -0
  162. homeassistant/components/qnap/translations/lt.json +1 -0
  163. homeassistant/components/random/translations/lt.json +1 -1
  164. homeassistant/components/random/translations/sv.json +1 -1
  165. homeassistant/components/risco/translations/lt.json +8 -0
  166. homeassistant/components/scrape/translations/lt.json +2 -1
  167. homeassistant/components/sensibo/translations/lt.json +5 -0
  168. homeassistant/components/sensor/translations/lt.json +5 -0
  169. homeassistant/components/smartthings/translations/he.json +13 -0
  170. homeassistant/components/somfy_mylink/translations/he.json +5 -0
  171. homeassistant/components/somfy_mylink/translations/lt.json +4 -2
  172. homeassistant/components/sql/translations/lt.json +2 -1
  173. homeassistant/components/switchbot/translations/lt.json +3 -1
  174. homeassistant/components/tellduslive/translations/lt.json +4 -0
  175. homeassistant/components/template/translations/he.json +149 -0
  176. homeassistant/components/template/translations/lt.json +40 -10
  177. homeassistant/components/template/translations/sv.json +1 -1
  178. homeassistant/components/teslemetry/translations/lt.json +1 -0
  179. homeassistant/components/tuya/translations/lt.json +5 -2
  180. homeassistant/components/unifiprotect/translations/lt.json +3 -0
  181. homeassistant/components/uptimerobot/coordinator.py +4 -1
  182. homeassistant/components/uptimerobot/quality_scale.yaml +1 -3
  183. homeassistant/components/volvo/manifest.json +1 -1
  184. homeassistant/components/volvo/translations/he.json +3 -0
  185. homeassistant/components/waze_travel_time/translations/lt.json +8 -0
  186. homeassistant/components/waze_travel_time/translations/nl.json +3 -0
  187. homeassistant/components/whois/translations/lt.json +1 -0
  188. homeassistant/components/xiaomi_ble/translations/lt.json +2 -1
  189. homeassistant/components/yalexs_ble/translations/cs.json +16 -1
  190. homeassistant/components/yalexs_ble/translations/el.json +11 -0
  191. homeassistant/components/yalexs_ble/translations/et.json +16 -1
  192. homeassistant/components/yalexs_ble/translations/lt.json +16 -1
  193. homeassistant/components/yalexs_ble/translations/pt.json +16 -1
  194. homeassistant/components/yalexs_ble/translations/sk.json +16 -1
  195. homeassistant/components/yalexs_ble/translations/zh-Hans.json +16 -1
  196. homeassistant/components/zwave_js/translations/lt.json +2 -0
  197. homeassistant/const.py +1 -1
  198. homeassistant/generated/config_flows.py +0 -1
  199. homeassistant/generated/integrations.json +0 -6
  200. homeassistant/helpers/device_registry.py +15 -9
  201. homeassistant/helpers/entity_registry.py +29 -19
  202. homeassistant/package_constraints.txt +1 -1
  203. {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b4.dist-info}/METADATA +1 -1
  204. {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b4.dist-info}/RECORD +209 -250
  205. homeassistant/components/vulcan/__init__.py +0 -48
  206. homeassistant/components/vulcan/calendar.py +0 -176
  207. homeassistant/components/vulcan/config_flow.py +0 -327
  208. homeassistant/components/vulcan/const.py +0 -3
  209. homeassistant/components/vulcan/fetch_data.py +0 -98
  210. homeassistant/components/vulcan/manifest.json +0 -9
  211. homeassistant/components/vulcan/register.py +0 -12
  212. homeassistant/components/vulcan/strings.json +0 -62
  213. homeassistant/components/vulcan/translations/bg.json +0 -37
  214. homeassistant/components/vulcan/translations/ca.json +0 -59
  215. homeassistant/components/vulcan/translations/cs.json +0 -62
  216. homeassistant/components/vulcan/translations/de.json +0 -62
  217. homeassistant/components/vulcan/translations/el.json +0 -61
  218. homeassistant/components/vulcan/translations/en-GB.json +0 -62
  219. homeassistant/components/vulcan/translations/en.json +0 -62
  220. homeassistant/components/vulcan/translations/es.json +0 -62
  221. homeassistant/components/vulcan/translations/et.json +0 -62
  222. homeassistant/components/vulcan/translations/fi.json +0 -59
  223. homeassistant/components/vulcan/translations/fr.json +0 -61
  224. homeassistant/components/vulcan/translations/ga.json +0 -9
  225. homeassistant/components/vulcan/translations/gl.json +0 -7
  226. homeassistant/components/vulcan/translations/he.json +0 -29
  227. homeassistant/components/vulcan/translations/hu.json +0 -62
  228. homeassistant/components/vulcan/translations/id.json +0 -59
  229. homeassistant/components/vulcan/translations/it.json +0 -60
  230. homeassistant/components/vulcan/translations/ja.json +0 -62
  231. homeassistant/components/vulcan/translations/ko.json +0 -59
  232. homeassistant/components/vulcan/translations/lt.json +0 -62
  233. homeassistant/components/vulcan/translations/mk.json +0 -11
  234. homeassistant/components/vulcan/translations/nb.json +0 -59
  235. homeassistant/components/vulcan/translations/nl.json +0 -60
  236. homeassistant/components/vulcan/translations/pl.json +0 -57
  237. homeassistant/components/vulcan/translations/pt-BR.json +0 -58
  238. homeassistant/components/vulcan/translations/pt.json +0 -62
  239. homeassistant/components/vulcan/translations/ro.json +0 -45
  240. homeassistant/components/vulcan/translations/ru.json +0 -62
  241. homeassistant/components/vulcan/translations/sk.json +0 -62
  242. homeassistant/components/vulcan/translations/sl.json +0 -21
  243. homeassistant/components/vulcan/translations/sv.json +0 -62
  244. homeassistant/components/vulcan/translations/tr.json +0 -62
  245. homeassistant/components/vulcan/translations/uk.json +0 -52
  246. homeassistant/components/vulcan/translations/vi.json +0 -15
  247. homeassistant/components/vulcan/translations/zh-Hans.json +0 -62
  248. homeassistant/components/vulcan/translations/zh-Hant.json +0 -62
  249. {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b4.dist-info}/WHEEL +0 -0
  250. {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b4.dist-info}/entry_points.txt +0 -0
  251. {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b4.dist-info}/licenses/LICENSE.md +0 -0
  252. {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b4.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  253. {homeassistant-2025.9.0b2.dist-info → homeassistant-2025.9.0b4.dist-info}/top_level.txt +0 -0
@@ -19,10 +19,25 @@
19
19
  "integration_discovery_confirm": {
20
20
  "description": "Ar norite nustatyti {name} per \u201eBluetooth\u201c su adresu {address} ?"
21
21
  },
22
+ "key_slot": {
23
+ "data": {
24
+ "key": "Neprisijungus veikiantis raktas (32 bait\u0173 \u0161e\u0161ioliktain\u0117 eilut\u0117)",
25
+ "slot": "Neprisijungusio rakto lizdas (sveikasis skai\u010dius nuo 0 iki 255)"
26
+ },
27
+ "description": "\u012eveskite {title} spynos rakt\u0105, kurio adresas {address}. Jei raktui gauti naudojate August arba Yale debesies integracij\u0105, galite i\u0161vengti \u0161io rankinio nustatymo i\u0161 naujo \u012fkeldami August arba Yale debesies integracij\u0105, kai spyna yra Bluetooth diapazone."
28
+ },
29
+ "reauth_validate": {
30
+ "data": {
31
+ "key": "Neprisijungus veikiantis raktas (32 bait\u0173 \u0161e\u0161ioliktain\u0117 eilut\u0117)",
32
+ "slot": "Neprisijungusio rakto lizdas (sveikasis skai\u010dius nuo 0 iki 255)"
33
+ },
34
+ "description": "\u012eveskite atnaujint\u0105 {title} spynos, kurios adresas yra {address}. Jei raktui gauti naudojate August arba Yale debesies integracij\u0105, galite i\u0161vengti rankinio pakartotinio autentifikavimo i\u0161 naujo \u012fkeldami August arba Yale debesies integracij\u0105, kai spyna yra Bluetooth diapazone."
35
+ },
22
36
  "user": {
23
37
  "data": {
24
38
  "address": "Bluetooth adresas"
25
- }
39
+ },
40
+ "description": "Pasirinkite \u012frengin\u012f, kur\u012f norite nustatyti per Bluetooth."
26
41
  }
27
42
  }
28
43
  },
@@ -19,10 +19,25 @@
19
19
  "integration_discovery_confirm": {
20
20
  "description": "Deseja configurar {name} por Bluetooth com endere\u00e7o {address}?"
21
21
  },
22
+ "key_slot": {
23
+ "data": {
24
+ "key": "Chave offline (sequ\u00eancia hexadecimal de 32 bytes)",
25
+ "slot": "Slot de chave offline (inteiro entre 0 e 255)"
26
+ },
27
+ "description": "Introduza a chave da fechadura {title} com o endere\u00e7o {address}. Se estiver a utilizar a integra\u00e7\u00e3o na nuvem August ou Yale para obter a chave, poder\u00e1 evitar esta configura\u00e7\u00e3o manual recarregando a integra\u00e7\u00e3o na nuvem August ou Yale enquanto a fechadura estiver ao alcance do Bluetooth."
28
+ },
29
+ "reauth_validate": {
30
+ "data": {
31
+ "key": "Chave offline (sequ\u00eancia hexadecimal de 32 bytes)",
32
+ "slot": "Slot de chave offline (inteiro entre 0 e 255)"
33
+ },
34
+ "description": "Introduza a chave atualizada da fechadura {title} com o endere\u00e7o {address}. Se estiver a utilizar a integra\u00e7\u00e3o na nuvem August ou Yale para obter a chave, poder\u00e1 evitar a reautentica\u00e7\u00e3o manual recarregando a integra\u00e7\u00e3o na nuvem August ou Yale enquanto a fechadura estiver ao alcance do Bluetooth."
35
+ },
22
36
  "user": {
23
37
  "data": {
24
38
  "address": "Endere\u00e7o Bluetooth"
25
- }
39
+ },
40
+ "description": "Selecione o dispositivo que pretende configurar atrav\u00e9s de Bluetooth."
26
41
  }
27
42
  }
28
43
  },
@@ -19,10 +19,25 @@
19
19
  "integration_discovery_confirm": {
20
20
  "description": "Chcete nastavi\u0165 {name} cez Bluetooth s adresou {address}?"
21
21
  },
22
+ "key_slot": {
23
+ "data": {
24
+ "key": "Offline k\u013e\u00fa\u010d (32-bajtov\u00fd hexadecim\u00e1lny re\u0165azec)",
25
+ "slot": "Offline Key Slot (Cel\u00e9 \u010d\u00edslo od 0 do 255)"
26
+ },
27
+ "description": "Zadajte k\u013e\u00fa\u010d pre z\u00e1mok {title} s adresou {address}. Ak na z\u00edskanie k\u013e\u00fa\u010da pou\u017e\u00edvate cloudov\u00fa integr\u00e1ciu August alebo Yale, m\u00f4\u017eete sa vyhn\u00fa\u0165 tomuto manu\u00e1lnemu nastaveniu na\u010d\u00edtan\u00edm cloudovej integr\u00e1cie August alebo Yale, ke\u010f je z\u00e1mok v dosahu Bluetooth."
28
+ },
29
+ "reauth_validate": {
30
+ "data": {
31
+ "key": "Offline k\u013e\u00fa\u010d (32-bajtov\u00fd hexadecim\u00e1lny re\u0165azec)",
32
+ "slot": "Offline Key Slot (Cel\u00e9 \u010d\u00edslo od 0 do 255)"
33
+ },
34
+ "description": "Zadajte aktualizovan\u00fd k\u013e\u00fa\u010d pre z\u00e1mok {title} s adresou {address}. Ak na z\u00edskanie k\u013e\u00fa\u010da pou\u017e\u00edvate cloudov\u00fa integr\u00e1ciu August alebo Yale, m\u00f4\u017eete sa vyhn\u00fa\u0165 ru\u010dn\u00e9mu op\u00e4tovn\u00e9mu overeniu t\u00fdm, \u017ee znovu na\u010d\u00edtate cloudov\u00fa integr\u00e1ciu August alebo Yale, ke\u010f je z\u00e1mok v dosahu Bluetooth."
35
+ },
22
36
  "user": {
23
37
  "data": {
24
38
  "address": "Adresa Bluetooth"
25
- }
39
+ },
40
+ "description": "Vyberte zariadenie, ktor\u00e9 chcete nastavi\u0165 cez Bluetooth."
26
41
  }
27
42
  }
28
43
  },
@@ -19,10 +19,25 @@
19
19
  "integration_discovery_confirm": {
20
20
  "description": "\u60a8\u8981\u4f7f\u7528\u84dd\u7259\u5730\u5740 {address} \u8bbe\u7f6e{name}\u5417 \uff1f"
21
21
  },
22
+ "key_slot": {
23
+ "data": {
24
+ "key": "\u79bb\u7ebf\u5bc6\u94a5\uff0832 \u5b57\u8282\u5341\u516d\u8fdb\u5236\u5b57\u7b26\u4e32\uff09",
25
+ "slot": "\u79bb\u7ebf\u5bc6\u94a5\u69fd\uff080-255 \u4e4b\u95f4\u7684\u6574\u6570\uff09"
26
+ },
27
+ "description": "\u8f93\u5165\u5730\u5740\u4e3a {address} \u7684{title}\u9501\u7684\u5bc6\u94a5\u3002\u5982\u679c\u60a8\u4f7f\u7528 August \u6216 Yale \u4e91\u96c6\u6210\u83b7\u53d6\u5bc6\u94a5\uff0c\u5219\u53ef\u4ee5\u5728\u9501\u5904\u4e8e\u84dd\u7259\u8303\u56f4\u5185\u65f6\u91cd\u65b0\u52a0\u8f7d August \u6216 Yale \u4e91\u96c6\u6210\uff0c\u4ee5\u907f\u514d\u6b64\u624b\u52a8\u8bbe\u7f6e\u3002"
28
+ },
29
+ "reauth_validate": {
30
+ "data": {
31
+ "key": "\u79bb\u7ebf\u5bc6\u94a5\uff0832 \u5b57\u8282\u5341\u516d\u8fdb\u5236\u5b57\u7b26\u4e32\uff09",
32
+ "slot": "\u79bb\u7ebf\u5bc6\u94a5\u69fd\uff080-255 \u4e4b\u95f4\u7684\u6574\u6570\uff09"
33
+ },
34
+ "description": "\u8f93\u5165\u5730\u5740\u4e3a {address} \u7684{title}\u9501\u7684\u66f4\u65b0\u5bc6\u94a5\u3002\u5982\u679c\u60a8\u4f7f\u7528 August \u6216 Yale \u4e91\u96c6\u6210\u83b7\u53d6\u5bc6\u94a5\uff0c\u5219\u53ef\u4ee5\u5728\u9501\u5904\u4e8e\u84dd\u7259\u8303\u56f4\u5185\u65f6\u91cd\u65b0\u52a0\u8f7d August \u6216 Yale \u4e91\u96c6\u6210\uff0c\u4ee5\u907f\u514d\u624b\u52a8\u91cd\u65b0\u9a8c\u8bc1\u3002"
35
+ },
22
36
  "user": {
23
37
  "data": {
24
38
  "address": "\u84dd\u7259\u5730\u5740"
25
- }
39
+ },
40
+ "description": "\u9009\u62e9\u60a8\u60f3\u8981\u901a\u8fc7\u84dd\u7259\u8bbe\u7f6e\u7684\u8bbe\u5907\u3002"
26
41
  }
27
42
  }
28
43
  },
@@ -4,6 +4,7 @@
4
4
  "addon_get_discovery_info_failed": "Nepavyko gauti Z-Wave priedo atradimo informacijos.",
5
5
  "addon_info_failed": "Nepavyko gauti Z-Wave priedo informacijos.",
6
6
  "addon_install_failed": "Nepavyko \u012fdiegti Z-Wave priedo.",
7
+ "addon_required": "Z-Wave perk\u0117limo srautui reikia sukonfig\u016bruoti integracij\u0105 naudojant Z-Wave Supervisor pried\u0105. Jei naudojate Z-Wave JS vartotojo s\u0105saj\u0105, vadovaukit\u0117s m\u016bs\u0173 [migracijos instrukcijomis]( {zwave_js_ui_migration} ).",
7
8
  "addon_set_config_failed": "Nepavyko nustatyti Z-Wave konfig\u016bracijos.",
8
9
  "addon_start_failed": "Nepavyko paleisti Z-Wave priedo.",
9
10
  "addon_stop_failed": "Nepavyko sustabdyti Z-Wave papildinio.",
@@ -291,6 +292,7 @@
291
292
  },
292
293
  "step": {
293
294
  "init": {
295
+ "description": "\u012erenginio {device_name} konfig\u016bracijos failas pasikeit\u0117. \n \n Z-Wave aptinka daug \u012frenginio metaduomen\u0173 apklausdama \u012frengin\u012f. Ta\u010diau dal\u012f informacijos reikia \u012fkelti i\u0161 konfig\u016bracijos failo. Dalis \u0161ios informacijos \u012fvertinama tik vien\u0105 kart\u0105, \u012frenginio apklausos metu. \n \n Atnaujinus \u012frenginio konfig\u016bracijos fail\u0105, \u0161i informacija gali b\u016bti pasenusi ir \u012frengin\u012f reikia apklausti i\u0161 naujo, kad pakeitimai b\u016bt\u0173 i\u0161saugoti. \n \n Tai n\u0117ra b\u016btina operacija, ir pakartotin\u0117s apklausos metu bus paveiktos \u012frenginio funkcijos, ta\u010diau jam pasibaigus, galite pasteb\u0117ti \u012frenginio patobulinim\u0173. \n \n Jei nuspr\u0119site t\u0119sti pakartotin\u0119 apklaus\u0105, ji vyks fone. \n \n Pastaba: Baterijomis maitinamus miego re\u017eimu veikian\u010dius \u012frenginius reikia pa\u017eadinti pakartotin\u0117s apklausos metu, kad jie veikt\u0173. Kaip pa\u017eadinti \u012frengin\u012f, priklauso nuo konkretaus \u012frenginio ir paprastai paai\u0161kinama \u012frenginio vadove.",
294
296
  "menu_options": {
295
297
  "confirm": "Pakartotinis apklausos prietaisas",
296
298
  "ignore": "Nepaisykite prietaiso konfig\u016bracijos atnaujinimo"
homeassistant/const.py CHANGED
@@ -25,7 +25,7 @@ if TYPE_CHECKING:
25
25
  APPLICATION_NAME: Final = "HomeAssistant"
26
26
  MAJOR_VERSION: Final = 2025
27
27
  MINOR_VERSION: Final = 9
28
- PATCH_VERSION: Final = "0b2"
28
+ PATCH_VERSION: Final = "0b4"
29
29
  __short_version__: Final = f"{MAJOR_VERSION}.{MINOR_VERSION}"
30
30
  __version__: Final = f"{__short_version__}.{PATCH_VERSION}"
31
31
  REQUIRED_PYTHON_VER: Final[tuple[int, int, int]] = (3, 13, 2)
@@ -708,7 +708,6 @@ FLOWS = {
708
708
  "volumio",
709
709
  "volvo",
710
710
  "volvooncall",
711
- "vulcan",
712
711
  "wake_on_lan",
713
712
  "wallbox",
714
713
  "waqi",
@@ -7306,12 +7306,6 @@
7306
7306
  "config_flow": true,
7307
7307
  "iot_class": "cloud_polling"
7308
7308
  },
7309
- "vulcan": {
7310
- "name": "Uonet+ Vulcan",
7311
- "integration_type": "hub",
7312
- "config_flow": true,
7313
- "iot_class": "cloud_polling"
7314
- },
7315
7309
  "vultr": {
7316
7310
  "name": "Vultr",
7317
7311
  "integration_type": "hub",
@@ -9,7 +9,7 @@ from enum import StrEnum
9
9
  from functools import lru_cache
10
10
  import logging
11
11
  import time
12
- from typing import TYPE_CHECKING, Any, Final, Literal, TypedDict
12
+ from typing import TYPE_CHECKING, Any, Literal, TypedDict
13
13
 
14
14
  import attr
15
15
  from yarl import URL
@@ -68,8 +68,6 @@ CONNECTION_ZIGBEE = "zigbee"
68
68
 
69
69
  ORPHANED_DEVICE_KEEP_SECONDS = 86400 * 30
70
70
 
71
- UNDEFINED_STR: Final = "UNDEFINED"
72
-
73
71
  # Can be removed when suggested_area is removed from DeviceEntry
74
72
  RUNTIME_ONLY_ATTRS = {"suggested_area"}
75
73
 
@@ -528,7 +526,8 @@ class DeletedDeviceEntry:
528
526
  "created_at": self.created_at,
529
527
  "disabled_by": self.disabled_by
530
528
  if self.disabled_by is not UNDEFINED
531
- else UNDEFINED_STR,
529
+ else None,
530
+ "disabled_by_undefined": self.disabled_by is UNDEFINED,
532
531
  "identifiers": list(self.identifiers),
533
532
  "id": self.id,
534
533
  "labels": list(self.labels),
@@ -616,7 +615,7 @@ class DeviceRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]):
616
615
  # Introduced in 2025.6
617
616
  for device in old_data["deleted_devices"]:
618
617
  device["area_id"] = None
619
- device["disabled_by"] = UNDEFINED_STR
618
+ device["disabled_by"] = None
620
619
  device["labels"] = []
621
620
  device["name_by_user"] = None
622
621
  if old_minor_version < 11:
@@ -629,6 +628,11 @@ class DeviceRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]):
629
628
  device["connections"] = _normalize_connections(
630
629
  device["connections"]
631
630
  )
631
+ if old_minor_version < 12:
632
+ # Version 1.12 adds undefined flags to deleted devices, this is a bugfix
633
+ # of version 1.10
634
+ for device in old_data["deleted_devices"]:
635
+ device["disabled_by_undefined"] = old_minor_version < 10
632
636
 
633
637
  if old_major_version > 2:
634
638
  raise NotImplementedError
@@ -1456,13 +1460,13 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
1456
1460
 
1457
1461
  # Introduced in 0.111
1458
1462
  def get_optional_enum[_EnumT: StrEnum](
1459
- cls: type[_EnumT], value: str | None
1463
+ cls: type[_EnumT], value: str | None, undefined: bool
1460
1464
  ) -> _EnumT | UndefinedType | None:
1461
1465
  """Convert string to the passed enum, UNDEFINED or None."""
1466
+ if undefined:
1467
+ return UNDEFINED
1462
1468
  if value is None:
1463
1469
  return None
1464
- if value == UNDEFINED_STR:
1465
- return UNDEFINED
1466
1470
  try:
1467
1471
  return cls(value)
1468
1472
  except ValueError:
@@ -1481,7 +1485,9 @@ class DeviceRegistry(BaseRegistry[dict[str, list[dict[str, Any]]]]):
1481
1485
  connections={tuple(conn) for conn in device["connections"]},
1482
1486
  created_at=datetime.fromisoformat(device["created_at"]),
1483
1487
  disabled_by=get_optional_enum(
1484
- DeviceEntryDisabler, device["disabled_by"]
1488
+ DeviceEntryDisabler,
1489
+ device["disabled_by"],
1490
+ device["disabled_by_undefined"],
1485
1491
  ),
1486
1492
  identifiers={tuple(iden) for iden in device["identifiers"]},
1487
1493
  id=device["id"],
@@ -16,7 +16,7 @@ from datetime import datetime, timedelta
16
16
  from enum import StrEnum
17
17
  import logging
18
18
  import time
19
- from typing import TYPE_CHECKING, Any, Final, Literal, NotRequired, TypedDict
19
+ from typing import TYPE_CHECKING, Any, Literal, NotRequired, TypedDict
20
20
 
21
21
  import attr
22
22
  import voluptuous as vol
@@ -79,14 +79,12 @@ EVENT_ENTITY_REGISTRY_UPDATED: EventType[EventEntityRegistryUpdatedData] = Event
79
79
  _LOGGER = logging.getLogger(__name__)
80
80
 
81
81
  STORAGE_VERSION_MAJOR = 1
82
- STORAGE_VERSION_MINOR = 18
82
+ STORAGE_VERSION_MINOR = 19
83
83
  STORAGE_KEY = "core.entity_registry"
84
84
 
85
85
  CLEANUP_INTERVAL = 3600 * 24
86
86
  ORPHANED_ENTITY_KEEP_SECONDS = 3600 * 24 * 30
87
87
 
88
- UNDEFINED_STR: Final = "UNDEFINED"
89
-
90
88
  ENTITY_CATEGORY_VALUE_TO_INDEX: dict[EntityCategory | None, int] = {
91
89
  val: idx for idx, val in enumerate(EntityCategory)
92
90
  }
@@ -462,19 +460,20 @@ class DeletedRegistryEntry:
462
460
  "device_class": self.device_class,
463
461
  "disabled_by": self.disabled_by
464
462
  if self.disabled_by is not UNDEFINED
465
- else UNDEFINED_STR,
463
+ else None,
464
+ "disabled_by_undefined": self.disabled_by is UNDEFINED,
466
465
  "entity_id": self.entity_id,
467
466
  "hidden_by": self.hidden_by
468
467
  if self.hidden_by is not UNDEFINED
469
- else UNDEFINED_STR,
468
+ else None,
469
+ "hidden_by_undefined": self.hidden_by is UNDEFINED,
470
470
  "icon": self.icon,
471
471
  "id": self.id,
472
472
  "labels": list(self.labels),
473
473
  "modified_at": self.modified_at,
474
474
  "name": self.name,
475
- "options": self.options
476
- if self.options is not UNDEFINED
477
- else UNDEFINED_STR,
475
+ "options": self.options if self.options is not UNDEFINED else {},
476
+ "options_undefined": self.options is UNDEFINED,
478
477
  "orphaned_timestamp": self.orphaned_timestamp,
479
478
  "platform": self.platform,
480
479
  "unique_id": self.unique_id,
@@ -605,12 +604,20 @@ class EntityRegistryStore(storage.Store[dict[str, list[dict[str, Any]]]]):
605
604
  entity["area_id"] = None
606
605
  entity["categories"] = {}
607
606
  entity["device_class"] = None
608
- entity["disabled_by"] = UNDEFINED_STR
609
- entity["hidden_by"] = UNDEFINED_STR
607
+ entity["disabled_by"] = None
608
+ entity["hidden_by"] = None
610
609
  entity["icon"] = None
611
610
  entity["labels"] = []
612
611
  entity["name"] = None
613
- entity["options"] = UNDEFINED_STR
612
+ entity["options"] = {}
613
+ if old_minor_version < 19:
614
+ # Version 1.19 adds undefined flags to deleted entities, this is a bugfix
615
+ # of version 1.18
616
+ set_to_undefined = old_minor_version < 18
617
+ for entity in data["deleted_entities"]:
618
+ entity["disabled_by_undefined"] = set_to_undefined
619
+ entity["hidden_by_undefined"] = set_to_undefined
620
+ entity["options_undefined"] = set_to_undefined
614
621
 
615
622
  if old_major_version > 1:
616
623
  raise NotImplementedError
@@ -1557,13 +1564,13 @@ class EntityRegistry(BaseRegistry):
1557
1564
  )
1558
1565
 
1559
1566
  def get_optional_enum[_EnumT: StrEnum](
1560
- cls: type[_EnumT], value: str | None
1567
+ cls: type[_EnumT], value: str | None, undefined: bool
1561
1568
  ) -> _EnumT | UndefinedType | None:
1562
1569
  """Convert string to the passed enum, UNDEFINED or None."""
1570
+ if undefined:
1571
+ return UNDEFINED
1563
1572
  if value is None:
1564
1573
  return None
1565
- if value == UNDEFINED_STR:
1566
- return UNDEFINED
1567
1574
  try:
1568
1575
  return cls(value)
1569
1576
  except ValueError:
@@ -1586,7 +1593,6 @@ class EntityRegistry(BaseRegistry):
1586
1593
  entity["platform"],
1587
1594
  entity["unique_id"],
1588
1595
  )
1589
-
1590
1596
  deleted_entities[key] = DeletedRegistryEntry(
1591
1597
  aliases=set(entity["aliases"]),
1592
1598
  area_id=entity["area_id"],
@@ -1596,11 +1602,15 @@ class EntityRegistry(BaseRegistry):
1596
1602
  created_at=datetime.fromisoformat(entity["created_at"]),
1597
1603
  device_class=entity["device_class"],
1598
1604
  disabled_by=get_optional_enum(
1599
- RegistryEntryDisabler, entity["disabled_by"]
1605
+ RegistryEntryDisabler,
1606
+ entity["disabled_by"],
1607
+ entity["disabled_by_undefined"],
1600
1608
  ),
1601
1609
  entity_id=entity["entity_id"],
1602
1610
  hidden_by=get_optional_enum(
1603
- RegistryEntryHider, entity["hidden_by"]
1611
+ RegistryEntryHider,
1612
+ entity["hidden_by"],
1613
+ entity["hidden_by_undefined"],
1604
1614
  ),
1605
1615
  icon=entity["icon"],
1606
1616
  id=entity["id"],
@@ -1608,7 +1618,7 @@ class EntityRegistry(BaseRegistry):
1608
1618
  modified_at=datetime.fromisoformat(entity["modified_at"]),
1609
1619
  name=entity["name"],
1610
1620
  options=entity["options"]
1611
- if entity["options"] is not UNDEFINED_STR
1621
+ if not entity["options_undefined"]
1612
1622
  else UNDEFINED,
1613
1623
  orphaned_timestamp=entity["orphaned_timestamp"],
1614
1624
  platform=entity["platform"],
@@ -38,7 +38,7 @@ habluetooth==5.3.0
38
38
  hass-nabucasa==1.0.0
39
39
  hassil==3.2.0
40
40
  home-assistant-bluetooth==1.13.1
41
- home-assistant-frontend==20250829.0
41
+ home-assistant-frontend==20250902.1
42
42
  home-assistant-intents==2025.8.29
43
43
  httpx==0.28.1
44
44
  ifaddr==0.2.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: homeassistant
3
- Version: 2025.9.0b2
3
+ Version: 2025.9.0b4
4
4
  Summary: Open-source home automation platform running on Python 3.
5
5
  Author-email: The Home Assistant Authors <hello@home-assistant.io>
6
6
  License-Expression: Apache-2.0