homeassistant 2025.11.0b5__py3-none-any.whl → 2025.11.2__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 (1008) hide show
  1. homeassistant/auth/mfa_modules/notify.py +7 -7
  2. homeassistant/auth/providers/homeassistant.py +8 -2
  3. homeassistant/components/abode/translations/mk.json +11 -0
  4. homeassistant/components/abode/translations/uk.json +4 -1
  5. homeassistant/components/accuweather/translations/mk.json +1 -0
  6. homeassistant/components/actron_air/translations/sr-Latn.json +3 -0
  7. homeassistant/components/adax/translations/sv.json +1 -1
  8. homeassistant/components/ads/translations/mk.json +11 -0
  9. homeassistant/components/aemet/translations/sv.json +2 -1
  10. homeassistant/components/aftership/translations/mk.json +11 -0
  11. homeassistant/components/ai_task/translations/mk.json +42 -1
  12. homeassistant/components/ai_task/translations/sv.json +3 -0
  13. homeassistant/components/airgradient/translations/bg.json +11 -0
  14. homeassistant/components/airgradient/translations/sr-Latn.json +3 -3
  15. homeassistant/components/airgradient/translations/sv.json +2 -0
  16. homeassistant/components/airly/translations/sv.json +2 -1
  17. homeassistant/components/airnow/translations/sv.json +2 -1
  18. homeassistant/components/airq/translations/sv.json +1 -0
  19. homeassistant/components/airthings/translations/mk.json +9 -1
  20. homeassistant/components/airthings_ble/config_flow.py +10 -7
  21. homeassistant/components/airthings_ble/const.py +5 -0
  22. homeassistant/components/airthings_ble/coordinator.py +32 -3
  23. homeassistant/components/airzone/translations/bg.json +2 -1
  24. homeassistant/components/airzone/translations/sr-Latn.json +1 -1
  25. homeassistant/components/airzone/translations/vi.json +9 -0
  26. homeassistant/components/airzone_cloud/translations/bg.json +5 -0
  27. homeassistant/components/airzone_cloud/translations/sr-Latn.json +2 -2
  28. homeassistant/components/airzone_cloud/translations/vi.json +9 -0
  29. homeassistant/components/aladdin_connect/translations/sr-Latn.json +7 -0
  30. homeassistant/components/aladdin_connect/translations/sv.json +1 -1
  31. homeassistant/components/alarm_control_panel/translations/mk.json +12 -0
  32. homeassistant/components/alarm_control_panel/translations/vi.json +16 -11
  33. homeassistant/components/alexa_devices/binary_sensor.py +2 -2
  34. homeassistant/components/alexa_devices/coordinator.py +6 -1
  35. homeassistant/components/alexa_devices/diagnostics.py +1 -1
  36. homeassistant/components/alexa_devices/entity.py +2 -2
  37. homeassistant/components/alexa_devices/manifest.json +1 -1
  38. homeassistant/components/alexa_devices/notify.py +3 -2
  39. homeassistant/components/alexa_devices/sensor.py +2 -2
  40. homeassistant/components/alexa_devices/services.py +1 -1
  41. homeassistant/components/alexa_devices/switch.py +1 -1
  42. homeassistant/components/alexa_devices/translations/it.json +3 -3
  43. homeassistant/components/alexa_devices/translations/mk.json +7 -0
  44. homeassistant/components/alexa_devices/translations/pt.json +11 -0
  45. homeassistant/components/alexa_devices/translations/sv.json +16 -0
  46. homeassistant/components/alexa_devices/utils.py +1 -1
  47. homeassistant/components/anthropic/translations/en-GB.json +1 -1
  48. homeassistant/components/anthropic/translations/lt.json +1 -1
  49. homeassistant/components/aosmith/translations/bg.json +2 -1
  50. homeassistant/components/aosmith/translations/sr-Latn.json +1 -1
  51. homeassistant/components/apcupsd/translations/mk.json +3 -0
  52. homeassistant/components/apcupsd/translations/pl.json +13 -0
  53. homeassistant/components/aprilaire/translations/bg.json +30 -5
  54. homeassistant/components/aprilaire/translations/sr-Latn.json +14 -14
  55. homeassistant/components/assist_pipeline/translations/sv.json +1 -1
  56. homeassistant/components/assist_satellite/translations/mk.json +59 -0
  57. homeassistant/components/assist_satellite/translations/vi.json +38 -0
  58. homeassistant/components/august/translations/sr-Latn.json +7 -1
  59. homeassistant/components/august/translations/sv.json +4 -0
  60. homeassistant/components/automation/translations/bg.json +3 -0
  61. homeassistant/components/automation/translations/sv.json +1 -1
  62. homeassistant/components/awair/translations/sv.json +1 -1
  63. homeassistant/components/backup/manifest.json +1 -1
  64. homeassistant/components/backup/translations/de.json +1 -1
  65. homeassistant/components/backup/translations/sr-Latn.json +11 -0
  66. homeassistant/components/bang_olufsen/translations/mk.json +21 -0
  67. homeassistant/components/bayesian/translations/de.json +1 -1
  68. homeassistant/components/bayesian/translations/sr-Latn.json +1 -0
  69. homeassistant/components/bayesian/translations/sv.json +108 -11
  70. homeassistant/components/bayesian/translations/vi.json +8 -0
  71. homeassistant/components/binary_sensor/translations/bg.json +9 -2
  72. homeassistant/components/binary_sensor/translations/mk.json +4 -0
  73. homeassistant/components/binary_sensor/translations/sr-Latn.json +3 -3
  74. homeassistant/components/blackbird/translations/mk.json +11 -0
  75. homeassistant/components/blink/translations/ca.json +8 -1
  76. homeassistant/components/blink/translations/mk.json +3 -0
  77. homeassistant/components/blink/translations/pt.json +17 -1
  78. homeassistant/components/blink/translations/sv.json +15 -1
  79. homeassistant/components/bluesound/translations/mk.json +8 -0
  80. homeassistant/components/bond/translations/sr-Latn.json +3 -0
  81. homeassistant/components/bosch_alarm/translations/sr-Latn.json +3 -0
  82. homeassistant/components/bring/translations/mk.json +5 -0
  83. homeassistant/components/bring/translations/sr-Latn.json +3 -0
  84. homeassistant/components/brother/translations/mk.json +9 -0
  85. homeassistant/components/brother/translations/pt.json +10 -2
  86. homeassistant/components/brother/translations/ru.json +5 -1
  87. homeassistant/components/brother/translations/sv.json +10 -2
  88. homeassistant/components/bryant_evolution/translations/pt.json +3 -0
  89. homeassistant/components/bryant_evolution/translations/ru.json +3 -0
  90. homeassistant/components/bryant_evolution/translations/vi.json +19 -0
  91. homeassistant/components/bsblan/climate.py +5 -2
  92. homeassistant/components/bsblan/manifest.json +1 -1
  93. homeassistant/components/bsblan/translations/vi.json +5 -0
  94. homeassistant/components/bthome/translations/mk.json +20 -0
  95. homeassistant/components/button/translations/mk.json +8 -1
  96. homeassistant/components/button/translations/vi.json +1 -0
  97. homeassistant/components/calendar/translations/bg.json +3 -0
  98. homeassistant/components/calendar/translations/mk.json +72 -0
  99. homeassistant/components/calendar/translations/sr-Latn.json +2 -2
  100. homeassistant/components/calendar/translations/sv.json +1 -1
  101. homeassistant/components/calendar/translations/vi.json +1 -0
  102. homeassistant/components/cambridge_audio/translations/bg.json +1 -0
  103. homeassistant/components/cambridge_audio/translations/sr-Latn.json +2 -2
  104. homeassistant/components/camera/translations/mk.json +60 -0
  105. homeassistant/components/camera/translations/sv.json +1 -1
  106. homeassistant/components/cert_expiry/translations/it.json +1 -0
  107. homeassistant/components/channels/translations/mk.json +11 -0
  108. homeassistant/components/climate/reproduce_state.py +3 -3
  109. homeassistant/components/climate/translations/bg.json +10 -4
  110. homeassistant/components/climate/translations/mk.json +101 -1
  111. homeassistant/components/climate/translations/pl.json +13 -13
  112. homeassistant/components/climate/translations/sr-Latn.json +4 -4
  113. homeassistant/components/climate/translations/vi.json +66 -10
  114. homeassistant/components/comelit/config_flow.py +42 -30
  115. homeassistant/components/conversation/manifest.json +1 -1
  116. homeassistant/components/conversation/translations/mk.json +37 -0
  117. homeassistant/components/conversation/translations/vi.json +38 -0
  118. homeassistant/components/counter/translations/mk.json +27 -0
  119. homeassistant/components/cover/translations/mk.json +6 -1
  120. homeassistant/components/daikin/translations/mk.json +3 -0
  121. homeassistant/components/daikin/translations/pl.json +7 -0
  122. homeassistant/components/deluge/translations/sv.json +3 -0
  123. homeassistant/components/demo/translations/bg.json +3 -1
  124. homeassistant/components/demo/translations/mk.json +11 -0
  125. homeassistant/components/demo/translations/sr-Latn.json +3 -3
  126. homeassistant/components/demo/translations/vi.json +11 -0
  127. homeassistant/components/denonavr/translations/sr-Latn.json +3 -0
  128. homeassistant/components/derivative/translations/mk.json +9 -0
  129. homeassistant/components/device_tracker/translations/mk.json +22 -1
  130. homeassistant/components/devolo_home_control/translations/cs.json +1 -1
  131. homeassistant/components/devolo_home_control/translations/de.json +1 -1
  132. homeassistant/components/devolo_home_control/translations/el.json +0 -3
  133. homeassistant/components/devolo_home_control/translations/en-GB.json +1 -1
  134. homeassistant/components/devolo_home_control/translations/en.json +1 -1
  135. homeassistant/components/devolo_home_control/translations/es.json +1 -1
  136. homeassistant/components/devolo_home_control/translations/et.json +1 -1
  137. homeassistant/components/devolo_home_control/translations/ga.json +0 -3
  138. homeassistant/components/devolo_home_control/translations/hu.json +0 -3
  139. homeassistant/components/devolo_home_control/translations/ja.json +0 -3
  140. homeassistant/components/devolo_home_control/translations/lt.json +1 -1
  141. homeassistant/components/devolo_home_control/translations/pt.json +1 -1
  142. homeassistant/components/devolo_home_control/translations/sk.json +1 -1
  143. homeassistant/components/devolo_home_control/translations/tr.json +0 -3
  144. homeassistant/components/devolo_home_control/translations/zh-Hans.json +1 -1
  145. homeassistant/components/devolo_home_control/translations/zh-Hant.json +1 -1
  146. homeassistant/components/dlna_dmr/translations/sv.json +1 -1
  147. homeassistant/components/downloader/translations/mk.json +11 -0
  148. homeassistant/components/drop_connect/translations/mk.json +1 -0
  149. homeassistant/components/ecobee/translations/mk.json +21 -0
  150. homeassistant/components/ecobee/translations/sv.json +3 -0
  151. homeassistant/components/ecoforest/translations/bg.json +1 -0
  152. homeassistant/components/ecoforest/translations/mk.json +9 -0
  153. homeassistant/components/ecoforest/translations/sr-Latn.json +2 -2
  154. homeassistant/components/econet/translations/sv.json +1 -1
  155. homeassistant/components/ecovacs/translations/mk.json +9 -0
  156. homeassistant/components/eheimdigital/translations/sr-Latn.json +5 -0
  157. homeassistant/components/ekeybionyx/translations/sr-Latn.json +10 -0
  158. homeassistant/components/electric_kiwi/translations/sv.json +3 -0
  159. homeassistant/components/elkm1/translations/mk.json +7 -0
  160. homeassistant/components/esphome/translations/sv.json +1 -1
  161. homeassistant/components/event/translations/mk.json +7 -0
  162. homeassistant/components/evohome/translations/mk.json +18 -0
  163. homeassistant/components/ezviz/translations/mk.json +9 -0
  164. homeassistant/components/faa_delays/translations/mk.json +13 -0
  165. homeassistant/components/fan/translations/bg.json +3 -0
  166. homeassistant/components/fan/translations/mk.json +35 -0
  167. homeassistant/components/filter/translations/mk.json +9 -0
  168. homeassistant/components/fing/translations/ca.json +23 -0
  169. homeassistant/components/fing/translations/sv.json +17 -0
  170. homeassistant/components/fitbit/translations/sv.json +3 -0
  171. homeassistant/components/fivem/translations/mk.json +9 -0
  172. homeassistant/components/flexit_bacnet/translations/vi.json +7 -0
  173. homeassistant/components/foscam/camera.py +4 -1
  174. homeassistant/components/foscam/coordinator.py +37 -19
  175. homeassistant/components/foscam/switch.py +1 -0
  176. homeassistant/components/foscam/translations/mk.json +9 -0
  177. homeassistant/components/freebox/translations/sv.json +1 -1
  178. homeassistant/components/fritzbox/translations/vi.json +13 -0
  179. homeassistant/components/fritzbox_callmonitor/translations/mk.json +3 -0
  180. homeassistant/components/fronius/translations/pl.json +3 -3
  181. homeassistant/components/frontend/manifest.json +1 -1
  182. homeassistant/components/frontend/translations/mk.json +9 -0
  183. homeassistant/components/frontend/translations/pl.json +18 -1
  184. homeassistant/components/fully_kiosk/translations/mk.json +11 -0
  185. homeassistant/components/fyta/translations/sr-Latn.json +3 -0
  186. homeassistant/components/generic_thermostat/translations/mk.json +2 -0
  187. homeassistant/components/generic_thermostat/translations/pl.json +2 -0
  188. homeassistant/components/geniushub/translations/mk.json +18 -0
  189. homeassistant/components/geo_location/translations/mk.json +11 -0
  190. homeassistant/components/geocaching/translations/sv.json +3 -0
  191. homeassistant/components/glances/translations/sl.json +7 -0
  192. homeassistant/components/goalzero/translations/sv.json +3 -0
  193. homeassistant/components/google/translations/mk.json +53 -0
  194. homeassistant/components/google/translations/sv.json +3 -0
  195. homeassistant/components/google_assistant_sdk/translations/sv.json +3 -0
  196. homeassistant/components/google_cloud/translations/sv.json +1 -0
  197. homeassistant/components/google_drive/translations/sr-Latn.json +7 -0
  198. homeassistant/components/google_drive/translations/sv.json +3 -0
  199. homeassistant/components/google_generative_ai_conversation/translations/lt.json +1 -1
  200. homeassistant/components/google_generative_ai_conversation/translations/mk.json +3 -0
  201. homeassistant/components/google_generative_ai_conversation/translations/sv.json +3 -1
  202. homeassistant/components/google_mail/translations/mk.json +12 -0
  203. homeassistant/components/google_mail/translations/sv.json +3 -0
  204. homeassistant/components/google_mail/translations/vi.json +7 -0
  205. homeassistant/components/google_photos/translations/mk.json +9 -0
  206. homeassistant/components/google_photos/translations/sv.json +3 -0
  207. homeassistant/components/google_sheets/translations/ca.json +11 -0
  208. homeassistant/components/google_sheets/translations/mk.json +9 -0
  209. homeassistant/components/google_sheets/translations/sv.json +14 -0
  210. homeassistant/components/google_tasks/translations/sv.json +3 -0
  211. homeassistant/components/google_travel_time/translations/ru.json +4 -2
  212. homeassistant/components/google_travel_time/translations/sv.json +4 -2
  213. homeassistant/components/govee_ble/translations/mk.json +15 -0
  214. homeassistant/components/group/translations/bg.json +1 -0
  215. homeassistant/components/group/translations/ca.json +15 -0
  216. homeassistant/components/group/translations/mk.json +6 -0
  217. homeassistant/components/growatt_server/__init__.py +15 -0
  218. homeassistant/components/growatt_server/translations/it.json +14 -0
  219. homeassistant/components/growatt_server/translations/ru.json +6 -0
  220. homeassistant/components/growatt_server/translations/sv.json +4 -2
  221. homeassistant/components/guardian/translations/mk.json +11 -0
  222. homeassistant/components/habitica/translations/ca.json +7 -0
  223. homeassistant/components/habitica/translations/mk.json +16 -1
  224. homeassistant/components/habitica/translations/sv.json +19 -1
  225. homeassistant/components/hassio/translations/it.json +13 -0
  226. homeassistant/components/hassio/translations/sv.json +7 -2
  227. homeassistant/components/hdmi_cec/translations/mk.json +7 -0
  228. homeassistant/components/heos/translations/mk.json +1 -1
  229. homeassistant/components/heos/translations/sr-Latn.json +3 -0
  230. homeassistant/components/here_travel_time/translations/mk.json +7 -0
  231. homeassistant/components/history_stats/translations/mk.json +11 -0
  232. homeassistant/components/hive/translations/bg.json +2 -0
  233. homeassistant/components/hive/translations/mk.json +16 -0
  234. homeassistant/components/hive/translations/sr-Latn.json +3 -3
  235. homeassistant/components/home_connect/translations/bg.json +160 -32
  236. homeassistant/components/home_connect/translations/mk.json +10 -0
  237. homeassistant/components/home_connect/translations/pt.json +3 -0
  238. homeassistant/components/home_connect/translations/sr-Latn.json +44 -44
  239. homeassistant/components/home_connect/translations/sv.json +7 -1
  240. homeassistant/components/homeassistant/translations/sv.json +5 -1
  241. homeassistant/components/homeassistant_connect_zbt2/config_flow.py +17 -0
  242. homeassistant/components/homeassistant_connect_zbt2/const.py +58 -0
  243. homeassistant/components/homeassistant_connect_zbt2/manifest.json +6 -0
  244. homeassistant/components/homeassistant_connect_zbt2/translations/pt.json +7 -0
  245. homeassistant/components/homeassistant_connect_zbt2/translations/sv.json +35 -3
  246. homeassistant/components/homeassistant_hardware/firmware_config_flow.py +101 -65
  247. homeassistant/components/homeassistant_hardware/translations/sv.json +5 -2
  248. homeassistant/components/homeassistant_hardware/translations/vi.json +1 -0
  249. homeassistant/components/homeassistant_sky_connect/manifest.json +6 -0
  250. homeassistant/components/homeassistant_sky_connect/translations/pt.json +7 -0
  251. homeassistant/components/homeassistant_sky_connect/translations/sv.json +20 -5
  252. homeassistant/components/homeassistant_sky_connect/translations/vi.json +1 -0
  253. homeassistant/components/homeassistant_yellow/manifest.json +6 -0
  254. homeassistant/components/homeassistant_yellow/translations/pt.json +5 -0
  255. homeassistant/components/homeassistant_yellow/translations/sv.json +13 -3
  256. homeassistant/components/homeassistant_yellow/translations/vi.json +1 -0
  257. homeassistant/components/homee/translations/bg.json +2 -1
  258. homeassistant/components/homee/translations/mk.json +16 -0
  259. homeassistant/components/homee/translations/sr-Latn.json +4 -2
  260. homeassistant/components/homekit/translations/sv.json +6 -0
  261. homeassistant/components/homekit_controller/translations/mk.json +1 -0
  262. homeassistant/components/homematic/translations/mk.json +18 -0
  263. homeassistant/components/homematicip_cloud/translations/mk.json +7 -0
  264. homeassistant/components/homematicip_cloud/translations/sv.json +1 -1
  265. homeassistant/components/homewizard/translations/pl.json +1 -1
  266. homeassistant/components/homewizard/translations/ru.json +4 -2
  267. homeassistant/components/homewizard/translations/sv.json +1 -1
  268. homeassistant/components/homeworks/translations/mk.json +11 -0
  269. homeassistant/components/honeywell/translations/mk.json +15 -0
  270. homeassistant/components/honeywell/translations/vi.json +11 -0
  271. homeassistant/components/html5/translations/mk.json +9 -1
  272. homeassistant/components/http/__init__.py +13 -2
  273. homeassistant/components/http/strings.json +4 -0
  274. homeassistant/components/http/translations/cs.json +4 -0
  275. homeassistant/components/http/translations/de.json +4 -0
  276. homeassistant/components/http/translations/en-GB.json +4 -0
  277. homeassistant/components/http/translations/en.json +4 -0
  278. homeassistant/components/http/translations/es.json +4 -0
  279. homeassistant/components/http/translations/et.json +4 -0
  280. homeassistant/components/http/translations/ga.json +4 -0
  281. homeassistant/components/http/translations/he.json +4 -0
  282. homeassistant/components/http/translations/it.json +4 -0
  283. homeassistant/components/http/translations/lt.json +4 -0
  284. homeassistant/components/http/translations/pt.json +4 -0
  285. homeassistant/components/http/translations/ru.json +3 -0
  286. homeassistant/components/http/translations/sk.json +4 -0
  287. homeassistant/components/http/translations/sr-Latn.json +7 -0
  288. homeassistant/components/http/translations/sv.json +4 -0
  289. homeassistant/components/http/translations/zh-Hans.json +4 -0
  290. homeassistant/components/http/translations/zh-Hant.json +4 -0
  291. homeassistant/components/huawei_lte/translations/bg.json +0 -6
  292. homeassistant/components/huawei_lte/translations/ca.json +0 -6
  293. homeassistant/components/huawei_lte/translations/cs.json +2 -2
  294. homeassistant/components/huawei_lte/translations/de.json +2 -2
  295. homeassistant/components/huawei_lte/translations/el.json +2 -2
  296. homeassistant/components/huawei_lte/translations/en-GB.json +2 -2
  297. homeassistant/components/huawei_lte/translations/en.json +2 -2
  298. homeassistant/components/huawei_lte/translations/es.json +2 -2
  299. homeassistant/components/huawei_lte/translations/et.json +2 -2
  300. homeassistant/components/huawei_lte/translations/fi.json +0 -6
  301. homeassistant/components/huawei_lte/translations/ga.json +0 -6
  302. homeassistant/components/huawei_lte/translations/hu.json +0 -6
  303. homeassistant/components/huawei_lte/translations/it.json +0 -6
  304. homeassistant/components/huawei_lte/translations/ja.json +0 -6
  305. homeassistant/components/huawei_lte/translations/ko.json +0 -6
  306. homeassistant/components/huawei_lte/translations/lt.json +2 -2
  307. homeassistant/components/huawei_lte/translations/nl.json +0 -6
  308. homeassistant/components/huawei_lte/translations/pt.json +2 -2
  309. homeassistant/components/huawei_lte/translations/ru.json +2 -2
  310. homeassistant/components/huawei_lte/translations/sk.json +2 -2
  311. homeassistant/components/huawei_lte/translations/tr.json +0 -6
  312. homeassistant/components/huawei_lte/translations/zh-Hans.json +2 -2
  313. homeassistant/components/huawei_lte/translations/zh-Hant.json +2 -2
  314. homeassistant/components/hue/translations/sv.json +1 -0
  315. homeassistant/components/humidifier/translations/bg.json +5 -1
  316. homeassistant/components/humidifier/translations/mk.json +18 -0
  317. homeassistant/components/humidifier/translations/pl.json +11 -4
  318. homeassistant/components/humidifier/translations/sr-Latn.json +3 -3
  319. homeassistant/components/husqvarna_automower/entity.py +7 -4
  320. homeassistant/components/husqvarna_automower/translations/bg.json +2 -0
  321. homeassistant/components/husqvarna_automower/translations/mk.json +14 -0
  322. homeassistant/components/husqvarna_automower/translations/sr-Latn.json +2 -2
  323. homeassistant/components/husqvarna_automower/translations/sv.json +3 -0
  324. homeassistant/components/husqvarna_automower_ble/translations/sv.json +22 -1
  325. homeassistant/components/huum/translations/vi.json +9 -0
  326. homeassistant/components/hydrawise/translations/mk.json +11 -0
  327. homeassistant/components/hyperion/camera.py +3 -1
  328. homeassistant/components/hyperion/translations/sv.json +1 -1
  329. homeassistant/components/icloud/translations/mk.json +17 -0
  330. homeassistant/components/icloud/translations/sv.json +2 -0
  331. homeassistant/components/ifttt/translations/mk.json +9 -0
  332. homeassistant/components/ihc/translations/mk.json +25 -0
  333. homeassistant/components/image/translations/mk.json +12 -0
  334. homeassistant/components/imeon_inverter/translations/sv.json +8 -0
  335. homeassistant/components/incomfort/translations/bg.json +1 -0
  336. homeassistant/components/incomfort/translations/sr-Latn.json +1 -1
  337. homeassistant/components/inels/translations/ca.json +7 -0
  338. homeassistant/components/inels/translations/sr-Latn.json +1 -0
  339. homeassistant/components/inels/translations/sv.json +12 -0
  340. homeassistant/components/input_boolean/translations/bg.json +1 -0
  341. homeassistant/components/input_boolean/translations/cs.json +2 -2
  342. homeassistant/components/input_boolean/translations/mk.json +17 -0
  343. homeassistant/components/input_boolean/translations/pl.json +4 -0
  344. homeassistant/components/input_boolean/translations/sr-Latn.json +2 -2
  345. homeassistant/components/input_button/translations/mk.json +12 -0
  346. homeassistant/components/input_datetime/translations/mk.json +10 -0
  347. homeassistant/components/input_number/translations/mk.json +21 -0
  348. homeassistant/components/input_select/translations/mk.json +38 -0
  349. homeassistant/components/input_select/translations/vi.json +2 -0
  350. homeassistant/components/input_text/translations/mk.json +15 -0
  351. homeassistant/components/integration/translations/mk.json +9 -0
  352. homeassistant/components/iometer/translations/sr-Latn.json +7 -0
  353. homeassistant/components/iotawatt/translations/sv.json +1 -1
  354. homeassistant/components/iotty/translations/sv.json +3 -0
  355. homeassistant/components/iron_os/translations/bg.json +9 -1
  356. homeassistant/components/iron_os/translations/sr-Latn.json +5 -5
  357. homeassistant/components/iskra/translations/sv.json +2 -1
  358. homeassistant/components/isy994/translations/mk.json +14 -0
  359. homeassistant/components/isy994/translations/sv.json +2 -0
  360. homeassistant/components/ituran/binary_sensor.py +1 -2
  361. homeassistant/components/ituran/device_tracker.py +2 -4
  362. homeassistant/components/ituran/sensor.py +1 -2
  363. homeassistant/components/jvc_projector/translations/sr-Latn.json +1 -1
  364. homeassistant/components/keba/translations/sv.json +1 -0
  365. homeassistant/components/keymitt_ble/translations/mk.json +11 -0
  366. homeassistant/components/kitchen_sink/translations/sv.json +3 -3
  367. homeassistant/components/knx/manifest.json +1 -1
  368. homeassistant/components/knx/storage/entity_store_schema.py +1 -1
  369. homeassistant/components/knx/translations/bg.json +2 -1
  370. homeassistant/components/knx/translations/ca.json +15 -0
  371. homeassistant/components/knx/translations/it.json +119 -2
  372. homeassistant/components/knx/translations/mk.json +13 -0
  373. homeassistant/components/knx/translations/pl.json +16 -0
  374. homeassistant/components/knx/translations/sv.json +56 -5
  375. homeassistant/components/knx/translations/vi.json +29 -0
  376. homeassistant/components/kodi/translations/mk.json +11 -0
  377. homeassistant/components/lamarzocco/update.py +1 -1
  378. homeassistant/components/lametric/translations/mk.json +16 -0
  379. homeassistant/components/lametric/translations/sv.json +4 -0
  380. homeassistant/components/laundrify/translations/mk.json +9 -0
  381. homeassistant/components/lawn_mower/translations/mk.json +7 -0
  382. homeassistant/components/lawn_mower/translations/sr-Latn.json +1 -1
  383. homeassistant/components/lcn/translations/mk.json +23 -1
  384. homeassistant/components/lg_thinq/translations/bg.json +25 -3
  385. homeassistant/components/lg_thinq/translations/mk.json +13 -0
  386. homeassistant/components/lg_thinq/translations/pl.json +5 -0
  387. homeassistant/components/lg_thinq/translations/sr-Latn.json +16 -16
  388. homeassistant/components/lg_thinq/translations/sv.json +1 -0
  389. homeassistant/components/libre_hardware_monitor/translations/sv.json +4 -0
  390. homeassistant/components/lifx/translations/mk.json +7 -0
  391. homeassistant/components/light/translations/bg.json +7 -1
  392. homeassistant/components/light/translations/mk.json +3 -1
  393. homeassistant/components/light/translations/sr-Latn.json +3 -3
  394. homeassistant/components/light/translations/vi.json +25 -2
  395. homeassistant/components/litterrobot/translations/bg.json +3 -1
  396. homeassistant/components/litterrobot/translations/mk.json +12 -0
  397. homeassistant/components/litterrobot/translations/sr-Latn.json +2 -2
  398. homeassistant/components/lock/translations/he.json +1 -1
  399. homeassistant/components/lock/translations/vi.json +5 -1
  400. homeassistant/components/logbook/translations/mk.json +14 -0
  401. homeassistant/components/logger/translations/de.json +1 -1
  402. homeassistant/components/logger/translations/mk.json +11 -0
  403. homeassistant/components/lutron/translations/mk.json +13 -0
  404. homeassistant/components/lutron_caseta/translations/bg.json +2 -1
  405. homeassistant/components/lutron_caseta/translations/sr-Latn.json +2 -2
  406. homeassistant/components/lyric/translations/sv.json +4 -1
  407. homeassistant/components/mastodon/translations/mk.json +17 -0
  408. homeassistant/components/matrix/translations/mk.json +17 -0
  409. homeassistant/components/matrix/translations/sv.json +31 -0
  410. homeassistant/components/matter/translations/bg.json +5 -2
  411. homeassistant/components/matter/translations/cs.json +1 -1
  412. homeassistant/components/matter/translations/de.json +0 -3
  413. homeassistant/components/matter/translations/el.json +0 -3
  414. homeassistant/components/matter/translations/en-GB.json +0 -3
  415. homeassistant/components/matter/translations/en.json +1 -1
  416. homeassistant/components/matter/translations/es.json +0 -3
  417. homeassistant/components/matter/translations/et.json +0 -3
  418. homeassistant/components/matter/translations/he.json +0 -3
  419. homeassistant/components/matter/translations/it.json +40 -0
  420. homeassistant/components/matter/translations/lt.json +0 -3
  421. homeassistant/components/matter/translations/mk.json +19 -3
  422. homeassistant/components/matter/translations/pl.json +5 -0
  423. homeassistant/components/matter/translations/pt.json +0 -3
  424. homeassistant/components/matter/translations/ru.json +0 -3
  425. homeassistant/components/matter/translations/sk.json +0 -3
  426. homeassistant/components/matter/translations/sr-Latn.json +5 -5
  427. homeassistant/components/matter/translations/sv.json +10 -0
  428. homeassistant/components/matter/translations/zh-Hans.json +0 -3
  429. homeassistant/components/matter/translations/zh-Hant.json +0 -3
  430. homeassistant/components/mcp/translations/sv.json +3 -0
  431. homeassistant/components/mcp_server/translations/lt.json +1 -1
  432. homeassistant/components/mealie/translations/mk.json +14 -0
  433. homeassistant/components/mealie/translations/sr-Latn.json +2 -1
  434. homeassistant/components/media_extractor/translations/mk.json +7 -0
  435. homeassistant/components/media_player/translations/bg.json +3 -0
  436. homeassistant/components/media_player/translations/mk.json +200 -2
  437. homeassistant/components/media_player/translations/sr-Latn.json +6 -6
  438. homeassistant/components/media_player/translations/vi.json +54 -1
  439. homeassistant/components/media_source/translations/mk.json +5 -0
  440. homeassistant/components/meteo_lt/weather.py +2 -2
  441. homeassistant/components/metoffice/translations/sr-Latn.json +3 -1
  442. homeassistant/components/microbees/translations/sv.json +3 -0
  443. homeassistant/components/miele/button.py +4 -3
  444. homeassistant/components/miele/climate.py +3 -2
  445. homeassistant/components/miele/coordinator.py +1 -1
  446. homeassistant/components/miele/fan.py +5 -2
  447. homeassistant/components/miele/light.py +3 -2
  448. homeassistant/components/miele/sensor.py +8 -2
  449. homeassistant/components/miele/services.py +4 -4
  450. homeassistant/components/miele/switch.py +5 -3
  451. homeassistant/components/miele/translations/bg.json +1 -0
  452. homeassistant/components/miele/translations/cs.json +1 -1
  453. homeassistant/components/miele/translations/de.json +1 -1
  454. homeassistant/components/miele/translations/en-GB.json +1 -1
  455. homeassistant/components/miele/translations/en.json +1 -1
  456. homeassistant/components/miele/translations/es.json +1 -1
  457. homeassistant/components/miele/translations/et.json +1 -1
  458. homeassistant/components/miele/translations/ga.json +1 -2
  459. homeassistant/components/miele/translations/hu.json +1 -2
  460. homeassistant/components/miele/translations/it.json +1 -2
  461. homeassistant/components/miele/translations/lt.json +1 -1
  462. homeassistant/components/miele/translations/mk.json +11 -0
  463. homeassistant/components/miele/translations/pt.json +1 -1
  464. homeassistant/components/miele/translations/sk.json +1 -1
  465. homeassistant/components/miele/translations/sr-Latn.json +3 -2
  466. homeassistant/components/miele/translations/sv.json +21 -2
  467. homeassistant/components/miele/translations/tr.json +1 -2
  468. homeassistant/components/miele/translations/vi.json +9 -0
  469. homeassistant/components/miele/translations/zh-Hans.json +1 -1
  470. homeassistant/components/miele/translations/zh-Hant.json +1 -1
  471. homeassistant/components/miele/vacuum.py +3 -2
  472. homeassistant/components/mill/manifest.json +1 -1
  473. homeassistant/components/minecraft_server/translations/mk.json +9 -0
  474. homeassistant/components/mjpeg/translations/sv.json +2 -0
  475. homeassistant/components/mobile_app/binary_sensor.py +6 -4
  476. homeassistant/components/mobile_app/sensor.py +6 -4
  477. homeassistant/components/mobile_app/translations/mk.json +11 -0
  478. homeassistant/components/modbus/translations/mk.json +11 -0
  479. homeassistant/components/modbus/translations/sv.json +2 -0
  480. homeassistant/components/monarch_money/translations/mk.json +9 -0
  481. homeassistant/components/monzo/translations/sv.json +3 -0
  482. homeassistant/components/motion_blinds/cover.py +1 -0
  483. homeassistant/components/motion_blinds/translations/sv.json +2 -1
  484. homeassistant/components/motionmount/translations/sr-Latn.json +4 -0
  485. homeassistant/components/motionmount/translations/sv.json +4 -1
  486. homeassistant/components/mqtt/translations/bg.json +4 -2
  487. homeassistant/components/mqtt/translations/mk.json +13 -1
  488. homeassistant/components/mqtt/translations/sr-Latn.json +2 -2
  489. homeassistant/components/mqtt/translations/sv.json +50 -10
  490. homeassistant/components/mqtt/translations/vi.json +83 -7
  491. homeassistant/components/music_assistant/translations/mk.json +10 -0
  492. homeassistant/components/mutesync/translations/mk.json +9 -0
  493. homeassistant/components/myuplink/translations/mk.json +7 -0
  494. homeassistant/components/myuplink/translations/sv.json +3 -0
  495. homeassistant/components/nanoleaf/translations/sv.json +1 -1
  496. homeassistant/components/neato/translations/sv.json +3 -0
  497. homeassistant/components/nederlandse_spoorwegen/translations/ca.json +7 -1
  498. homeassistant/components/nederlandse_spoorwegen/translations/pt.json +12 -1
  499. homeassistant/components/nederlandse_spoorwegen/translations/sv.json +3 -0
  500. homeassistant/components/nest/translations/sr-Latn.json +1 -0
  501. homeassistant/components/nest/translations/sv.json +3 -0
  502. homeassistant/components/netatmo/translations/mk.json +14 -0
  503. homeassistant/components/netatmo/translations/sv.json +3 -0
  504. homeassistant/components/nexia/translations/mk.json +14 -0
  505. homeassistant/components/nexia/translations/vi.json +12 -0
  506. homeassistant/components/nextdns/translations/ca.json +7 -1
  507. homeassistant/components/nextdns/translations/it.json +1 -0
  508. homeassistant/components/nextdns/translations/sv.json +10 -1
  509. homeassistant/components/nina/translations/sv.json +14 -0
  510. homeassistant/components/nintendo_parental_controls/translations/pt.json +27 -0
  511. homeassistant/components/nintendo_parental_controls/translations/sv.json +23 -0
  512. homeassistant/components/nobo_hub/translations/mk.json +11 -0
  513. homeassistant/components/nobo_hub/translations/vi.json +11 -0
  514. homeassistant/components/nordpool/translations/mk.json +14 -0
  515. homeassistant/components/notify/translations/mk.json +58 -0
  516. homeassistant/components/notify/translations/sv.json +1 -1
  517. homeassistant/components/ntfy/translations/mk.json +14 -0
  518. homeassistant/components/ntfy/translations/sv.json +1 -1
  519. homeassistant/components/nuki/translations/ru.json +4 -0
  520. homeassistant/components/number/translations/mk.json +14 -1
  521. homeassistant/components/nut/translations/bg.json +1 -0
  522. homeassistant/components/nut/translations/mk.json +8 -0
  523. homeassistant/components/nut/translations/pl.json +6 -0
  524. homeassistant/components/nut/translations/sr-Latn.json +1 -1
  525. homeassistant/components/nws/translations/mk.json +10 -0
  526. homeassistant/components/ohme/translations/mk.json +5 -0
  527. homeassistant/components/ollama/translations/lt.json +1 -1
  528. homeassistant/components/ollama/translations/sr-Latn.json +6 -0
  529. homeassistant/components/ondilo_ico/translations/sv.json +3 -0
  530. homeassistant/components/onedrive/manifest.json +1 -1
  531. homeassistant/components/onedrive/translations/mk.json +9 -0
  532. homeassistant/components/onedrive/translations/sr-Latn.json +5 -0
  533. homeassistant/components/onedrive/translations/sv.json +3 -0
  534. homeassistant/components/onewire/manifest.json +1 -1
  535. homeassistant/components/onewire/translations/el.json +1 -1
  536. homeassistant/components/onewire/translations/en-GB.json +1 -1
  537. homeassistant/components/onewire/translations/en.json +1 -1
  538. homeassistant/components/onewire/translations/es.json +1 -1
  539. homeassistant/components/onewire/translations/et.json +1 -1
  540. homeassistant/components/onewire/translations/ga.json +0 -1
  541. homeassistant/components/onewire/translations/sv.json +0 -1
  542. homeassistant/components/onvif/translations/sv.json +1 -1
  543. homeassistant/components/open_router/manifest.json +1 -1
  544. homeassistant/components/open_router/translations/lt.json +1 -1
  545. homeassistant/components/open_router/translations/mk.json +3 -0
  546. homeassistant/components/openai_conversation/translations/lt.json +1 -1
  547. homeassistant/components/openrgb/translations/cs.json +1 -1
  548. homeassistant/components/openrgb/translations/de.json +1 -1
  549. homeassistant/components/openrgb/translations/es.json +1 -1
  550. homeassistant/components/openrgb/translations/pt.json +1 -1
  551. homeassistant/components/opentherm_gw/translations/mk.json +10 -0
  552. homeassistant/components/opentherm_gw/translations/vi.json +5 -0
  553. homeassistant/components/openweathermap/translations/sv.json +1 -1
  554. homeassistant/components/oralb/translations/bg.json +2 -0
  555. homeassistant/components/oralb/translations/fr.json +41 -4
  556. homeassistant/components/osoenergy/translations/bg.json +6 -0
  557. homeassistant/components/osoenergy/translations/sr-Latn.json +2 -2
  558. homeassistant/components/overkiz/translations/mk.json +11 -0
  559. homeassistant/components/overkiz/translations/pt.json +2 -1
  560. homeassistant/components/overkiz/translations/ru.json +2 -1
  561. homeassistant/components/overkiz/translations/vi.json +6 -0
  562. homeassistant/components/palazzetti/manifest.json +1 -1
  563. homeassistant/components/palazzetti/translations/mk.json +1 -0
  564. homeassistant/components/palazzetti/translations/sr-Latn.json +1 -1
  565. homeassistant/components/persistent_notification/translations/mk.json +15 -0
  566. homeassistant/components/person/translations/mk.json +7 -1
  567. homeassistant/components/pi_hole/translations/mk.json +14 -0
  568. homeassistant/components/playstation_network/translations/sr-Latn.json +3 -0
  569. homeassistant/components/plugwise/translations/bg.json +9 -2
  570. homeassistant/components/plugwise/translations/cs.json +3 -0
  571. homeassistant/components/plugwise/translations/en-GB.json +3 -0
  572. homeassistant/components/plugwise/translations/es.json +3 -0
  573. homeassistant/components/plugwise/translations/et.json +3 -0
  574. homeassistant/components/plugwise/translations/ga.json +3 -0
  575. homeassistant/components/plugwise/translations/it.json +3 -0
  576. homeassistant/components/plugwise/translations/lt.json +3 -0
  577. homeassistant/components/plugwise/translations/mk.json +8 -0
  578. homeassistant/components/plugwise/translations/pt.json +3 -0
  579. homeassistant/components/plugwise/translations/sr-Latn.json +3 -3
  580. homeassistant/components/plugwise/translations/sv.json +3 -0
  581. homeassistant/components/plugwise/translations/vi.json +6 -1
  582. homeassistant/components/plugwise/translations/zh-Hans.json +3 -0
  583. homeassistant/components/plugwise/translations/zh-Hant.json +3 -0
  584. homeassistant/components/point/translations/sv.json +3 -0
  585. homeassistant/components/pooldose/translations/bg.json +4 -0
  586. homeassistant/components/pooldose/translations/it.json +1 -0
  587. homeassistant/components/pooldose/translations/sr-Latn.json +4 -4
  588. homeassistant/components/pooldose/translations/sv.json +14 -1
  589. homeassistant/components/portainer/manifest.json +1 -1
  590. homeassistant/components/portainer/translations/ca.json +9 -1
  591. homeassistant/components/portainer/translations/mk.json +9 -0
  592. homeassistant/components/portainer/translations/pt.json +16 -1
  593. homeassistant/components/portainer/translations/sv.json +16 -3
  594. homeassistant/components/powerwall/translations/mk.json +9 -0
  595. homeassistant/components/profiler/translations/mk.json +18 -0
  596. homeassistant/components/prusalink/translations/mk.json +9 -0
  597. homeassistant/components/ps4/translations/sv.json +2 -2
  598. homeassistant/components/pterodactyl/translations/mk.json +7 -0
  599. homeassistant/components/pushbullet/translations/mk.json +9 -0
  600. homeassistant/components/qbittorrent/translations/mk.json +3 -0
  601. homeassistant/components/qbittorrent/translations/ru.json +4 -0
  602. homeassistant/components/qbus/translations/sr-Latn.json +5 -0
  603. homeassistant/components/qbus/translations/sv.json +7 -0
  604. homeassistant/components/qnap/translations/mk.json +7 -0
  605. homeassistant/components/rachio/translations/mk.json +23 -0
  606. homeassistant/components/rainbird/translations/mk.json +18 -0
  607. homeassistant/components/rainmachine/translations/mk.json +21 -0
  608. homeassistant/components/rainmachine/translations/pt.json +1 -0
  609. homeassistant/components/random/translations/sr-Latn.json +2 -1
  610. homeassistant/components/recorder/auto_repairs/statistics/schema.py +3 -0
  611. homeassistant/components/recorder/const.py +1 -1
  612. homeassistant/components/recorder/db_schema.py +1 -1
  613. homeassistant/components/recorder/migration.py +73 -4
  614. homeassistant/components/recorder/translations/mk.json +6 -0
  615. homeassistant/components/renault/translations/sr-Latn.json +1 -0
  616. homeassistant/components/renault/translations/vi.json +11 -0
  617. homeassistant/components/renson/translations/bg.json +2 -1
  618. homeassistant/components/renson/translations/mk.json +11 -0
  619. homeassistant/components/renson/translations/sr-Latn.json +4 -4
  620. homeassistant/components/reolink/manifest.json +1 -1
  621. homeassistant/components/reolink/translations/bg.json +34 -1
  622. homeassistant/components/reolink/translations/ga.json +1 -0
  623. homeassistant/components/reolink/translations/it.json +5 -0
  624. homeassistant/components/reolink/translations/mk.json +4 -0
  625. homeassistant/components/reolink/translations/pt.json +1 -0
  626. homeassistant/components/reolink/translations/sr-Latn.json +12 -12
  627. homeassistant/components/reolink/translations/sv.json +1 -1
  628. homeassistant/components/rfxtrx/translations/bg.json +1 -0
  629. homeassistant/components/rfxtrx/translations/sr-Latn.json +2 -2
  630. homeassistant/components/risco/translations/vi.json +8 -0
  631. homeassistant/components/roborock/translations/bg.json +3 -1
  632. homeassistant/components/roborock/translations/mk.json +3 -0
  633. homeassistant/components/roborock/translations/sr-Latn.json +2 -2
  634. homeassistant/components/roomba/translations/sv.json +1 -1
  635. homeassistant/components/roon/translations/sv.json +1 -1
  636. homeassistant/components/sabnzbd/translations/mk.json +9 -0
  637. homeassistant/components/satel_integra/translations/it.json +1 -0
  638. homeassistant/components/satel_integra/translations/pl.json +3 -3
  639. homeassistant/components/satel_integra/translations/sr-Latn.json +2 -1
  640. homeassistant/components/satel_integra/translations/sv.json +9 -2
  641. homeassistant/components/satel_integra/translations/vi.json +10 -0
  642. homeassistant/components/schedule/translations/vi.json +8 -1
  643. homeassistant/components/scrape/translations/mk.json +2 -1
  644. homeassistant/components/select/translations/mk.json +48 -0
  645. homeassistant/components/sensibo/translations/bg.json +72 -7
  646. homeassistant/components/sensibo/translations/mk.json +21 -0
  647. homeassistant/components/sensibo/translations/pl.json +2 -2
  648. homeassistant/components/sensibo/translations/sr-Latn.json +27 -27
  649. homeassistant/components/sensibo/translations/vi.json +26 -0
  650. homeassistant/components/sensor/translations/mk.json +6 -0
  651. homeassistant/components/sensor/translations/pl.json +2 -2
  652. homeassistant/components/senz/translations/sv.json +3 -0
  653. homeassistant/components/sfr_box/__init__.py +4 -0
  654. homeassistant/components/sfr_box/translations/pt.json +4 -0
  655. homeassistant/components/sftp_storage/translations/sv.json +1 -0
  656. homeassistant/components/shelly/translations/ca.json +4 -0
  657. homeassistant/components/shelly/translations/mk.json +11 -0
  658. homeassistant/components/shelly/translations/pl.json +1 -1
  659. homeassistant/components/shelly/translations/pt.json +2 -1
  660. homeassistant/components/shelly/translations/sv.json +10 -3
  661. homeassistant/components/shopping_list/translations/mk.json +8 -0
  662. homeassistant/components/sia/translations/sv.json +6 -3
  663. homeassistant/components/simplisafe/translations/mk.json +11 -0
  664. homeassistant/components/siren/translations/mk.json +19 -0
  665. homeassistant/components/siren/translations/sr-Latn.json +1 -1
  666. homeassistant/components/skybell/translations/mk.json +9 -0
  667. homeassistant/components/slack/translations/sv.json +2 -0
  668. homeassistant/components/sleep_as_android/translations/sv.json +24 -0
  669. homeassistant/components/sleepiq/translations/bg.json +14 -0
  670. homeassistant/components/sleepiq/translations/sr-Latn.json +2 -2
  671. homeassistant/components/smappee/translations/sv.json +3 -0
  672. homeassistant/components/smarla/translations/sv.json +5 -0
  673. homeassistant/components/smartthings/manifest.json +1 -1
  674. homeassistant/components/smartthings/translations/bg.json +25 -2
  675. homeassistant/components/smartthings/translations/mk.json +15 -0
  676. homeassistant/components/smartthings/translations/sr-Latn.json +9 -9
  677. homeassistant/components/smartthings/translations/sv.json +6 -0
  678. homeassistant/components/smarttub/translations/mk.json +9 -0
  679. homeassistant/components/sms/translations/sr-Latn.json +3 -0
  680. homeassistant/components/snapcast/translations/mk.json +10 -0
  681. homeassistant/components/snapcast/translations/sv.json +10 -0
  682. homeassistant/components/snips/translations/mk.json +18 -0
  683. homeassistant/components/snooz/translations/sv.json +1 -1
  684. homeassistant/components/solaredge/__init__.py +3 -0
  685. homeassistant/components/solaredge/config_flow.py +5 -2
  686. homeassistant/components/solaredge/translations/ca.json +22 -1
  687. homeassistant/components/solaredge/translations/ru.json +4 -2
  688. homeassistant/components/somfy_mylink/translations/ru.json +2 -1
  689. homeassistant/components/songpal/translations/mk.json +11 -0
  690. homeassistant/components/sonos/translations/bg.json +7 -0
  691. homeassistant/components/sonos/translations/sr-Latn.json +1 -1
  692. homeassistant/components/spotify/translations/sv.json +3 -0
  693. homeassistant/components/sql/translations/bg.json +1 -2
  694. homeassistant/components/sql/translations/ca.json +2 -4
  695. homeassistant/components/sql/translations/cs.json +2 -2
  696. homeassistant/components/sql/translations/de.json +2 -2
  697. homeassistant/components/sql/translations/el.json +2 -4
  698. homeassistant/components/sql/translations/en-GB.json +2 -2
  699. homeassistant/components/sql/translations/en.json +2 -2
  700. homeassistant/components/sql/translations/es.json +2 -2
  701. homeassistant/components/sql/translations/et.json +2 -2
  702. homeassistant/components/sql/translations/fi.json +2 -4
  703. homeassistant/components/sql/translations/fr.json +2 -4
  704. homeassistant/components/sql/translations/ga.json +2 -4
  705. homeassistant/components/sql/translations/he.json +2 -4
  706. homeassistant/components/sql/translations/hu.json +2 -4
  707. homeassistant/components/sql/translations/id.json +2 -4
  708. homeassistant/components/sql/translations/ja.json +2 -4
  709. homeassistant/components/sql/translations/lt.json +2 -2
  710. homeassistant/components/sql/translations/mk.json +11 -0
  711. homeassistant/components/sql/translations/pl.json +2 -4
  712. homeassistant/components/sql/translations/pt-BR.json +2 -4
  713. homeassistant/components/sql/translations/pt.json +2 -2
  714. homeassistant/components/sql/translations/ru.json +2 -4
  715. homeassistant/components/sql/translations/sk.json +2 -2
  716. homeassistant/components/sql/translations/sl.json +2 -4
  717. homeassistant/components/sql/translations/sr-Latn.json +3 -0
  718. homeassistant/components/sql/translations/sv.json +16 -5
  719. homeassistant/components/sql/translations/tr.json +2 -4
  720. homeassistant/components/sql/translations/zh-Hans.json +2 -2
  721. homeassistant/components/sql/translations/zh-Hant.json +2 -2
  722. homeassistant/components/squeezebox/translations/sr-Latn.json +8 -0
  723. homeassistant/components/squeezebox/translations/uk.json +5 -0
  724. homeassistant/components/starline/translations/mk.json +9 -0
  725. homeassistant/components/statistics/translations/sl.json +7 -0
  726. homeassistant/components/subaru/translations/sv.json +2 -0
  727. homeassistant/components/{sunricher_dali_center → sunricher_dali}/__init__.py +2 -2
  728. homeassistant/components/{sunricher_dali_center → sunricher_dali}/config_flow.py +2 -2
  729. homeassistant/components/sunricher_dali/const.py +5 -0
  730. homeassistant/components/{sunricher_dali_center → sunricher_dali}/light.py +2 -2
  731. homeassistant/components/{sunricher_dali_center → sunricher_dali}/manifest.json +3 -3
  732. homeassistant/components/{sunricher_dali_center → sunricher_dali}/strings.json +4 -6
  733. homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/bg.json +1 -2
  734. homeassistant/components/sunricher_dali/translations/ca.json +11 -0
  735. homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/cs.json +4 -6
  736. homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/de.json +5 -7
  737. homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/en-GB.json +4 -6
  738. homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/en.json +4 -6
  739. homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/es.json +4 -6
  740. homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/et.json +4 -6
  741. homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/ga.json +4 -6
  742. homeassistant/components/sunricher_dali/translations/it.json +27 -0
  743. homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/lt.json +5 -7
  744. homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/pt.json +4 -6
  745. homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/sk.json +4 -6
  746. homeassistant/components/sunricher_dali/translations/sr-Latn.json +25 -0
  747. homeassistant/components/sunricher_dali/translations/sv.json +27 -0
  748. homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/zh-Hans.json +4 -6
  749. homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/zh-Hant.json +4 -6
  750. homeassistant/components/{sunricher_dali_center → sunricher_dali}/types.py +2 -2
  751. homeassistant/components/swiss_public_transport/translations/mk.json +1 -0
  752. homeassistant/components/switch/translations/bg.json +10 -0
  753. homeassistant/components/switch/translations/mk.json +10 -0
  754. homeassistant/components/switch_as_x/translations/cs.json +1 -1
  755. homeassistant/components/switchbot_cloud/translations/mk.json +15 -0
  756. homeassistant/components/switchbot_cloud/translations/sv.json +2 -1
  757. homeassistant/components/synology_dsm/translations/mk.json +13 -0
  758. homeassistant/components/system_bridge/translations/mk.json +12 -0
  759. homeassistant/components/system_bridge/translations/ru.json +1 -0
  760. homeassistant/components/system_log/translations/mk.json +14 -0
  761. homeassistant/components/systemmonitor/translations/sv.json +1 -1
  762. homeassistant/components/tado/translations/sv.json +2 -2
  763. homeassistant/components/tankerkoenig/translations/mk.json +9 -0
  764. homeassistant/components/tautulli/translations/sv.json +2 -1
  765. homeassistant/components/technove/translations/mk.json +1 -0
  766. homeassistant/components/telegram/translations/pt.json +6 -0
  767. homeassistant/components/telegram/translations/ru.json +6 -0
  768. homeassistant/components/telegram_bot/translations/mk.json +95 -0
  769. homeassistant/components/telegram_bot/translations/ru.json +69 -0
  770. homeassistant/components/telegram_bot/translations/sv.json +19 -0
  771. homeassistant/components/telegram_bot/translations/vi.json +7 -0
  772. homeassistant/components/template/translations/it.json +5 -0
  773. homeassistant/components/template/translations/mk.json +9 -0
  774. homeassistant/components/template/translations/sr-Latn.json +8 -0
  775. homeassistant/components/template/translations/sv.json +140 -40
  776. homeassistant/components/template/translations/vi.json +301 -10
  777. homeassistant/components/tesla_fleet/translations/bg.json +40 -0
  778. homeassistant/components/tesla_fleet/translations/mk.json +10 -0
  779. homeassistant/components/tesla_fleet/translations/sr-Latn.json +13 -8
  780. homeassistant/components/tesla_fleet/translations/sv.json +3 -0
  781. homeassistant/components/tesla_fleet/translations/vi.json +5 -0
  782. homeassistant/components/tesla_wall_connector/translations/mk.json +3 -0
  783. homeassistant/components/teslemetry/translations/bg.json +68 -3
  784. homeassistant/components/teslemetry/translations/mk.json +32 -1
  785. homeassistant/components/teslemetry/translations/sr-Latn.json +16 -16
  786. homeassistant/components/teslemetry/translations/sv.json +133 -2
  787. homeassistant/components/teslemetry/translations/vi.json +22 -0
  788. homeassistant/components/teslemetry/update.py +1 -1
  789. homeassistant/components/tessie/translations/bg.json +45 -0
  790. homeassistant/components/tessie/translations/mk.json +10 -0
  791. homeassistant/components/tessie/translations/sr-Latn.json +9 -9
  792. homeassistant/components/tessie/translations/vi.json +5 -0
  793. homeassistant/components/text/translations/mk.json +23 -0
  794. homeassistant/components/thethingsnetwork/translations/sv.json +1 -0
  795. homeassistant/components/timer/translations/mk.json +27 -0
  796. homeassistant/components/timer/translations/sk.json +1 -1
  797. homeassistant/components/timer/translations/vi.json +29 -1
  798. homeassistant/components/todo/translations/mk.json +61 -0
  799. homeassistant/components/todo/translations/vi.json +102 -1
  800. homeassistant/components/todoist/translations/mk.json +11 -0
  801. homeassistant/components/todoist/translations/vi.json +76 -1
  802. homeassistant/components/togrill/translations/pl.json +5 -0
  803. homeassistant/components/togrill/translations/sr-Latn.json +3 -0
  804. homeassistant/components/tomorrowio/translations/sv.json +2 -1
  805. homeassistant/components/toon/translations/sv.json +3 -0
  806. homeassistant/components/tplink/climate.py +8 -9
  807. homeassistant/components/tplink/translations/mk.json +6 -0
  808. homeassistant/components/tplink/translations/sr-Latn.json +3 -0
  809. homeassistant/components/traccar_server/translations/ca.json +6 -0
  810. homeassistant/components/traccar_server/translations/mk.json +7 -0
  811. homeassistant/components/traccar_server/translations/pt.json +10 -0
  812. homeassistant/components/trafikverket_camera/translations/mk.json +21 -0
  813. homeassistant/components/transmission/translations/mk.json +9 -0
  814. homeassistant/components/transmission/translations/pt.json +25 -0
  815. homeassistant/components/transmission/translations/ru.json +1 -0
  816. homeassistant/components/transmission/translations/sv.json +24 -0
  817. homeassistant/components/tts/translations/mk.json +11 -0
  818. homeassistant/components/tuya/manifest.json +1 -1
  819. homeassistant/components/tuya/translations/bg.json +10 -2
  820. homeassistant/components/tuya/translations/mk.json +27 -1
  821. homeassistant/components/tuya/translations/pl.json +3 -0
  822. homeassistant/components/tuya/translations/pt.json +12 -0
  823. homeassistant/components/tuya/translations/sr-Latn.json +5 -5
  824. homeassistant/components/tuya/translations/sv.json +3 -0
  825. homeassistant/components/twinkly/translations/bg.json +9 -0
  826. homeassistant/components/twinkly/translations/sr-Latn.json +1 -1
  827. homeassistant/components/twitch/translations/mk.json +13 -0
  828. homeassistant/components/ukraine_alarm/__init__.py +63 -0
  829. homeassistant/components/ukraine_alarm/config_flow.py +2 -2
  830. homeassistant/components/ukraine_alarm/strings.json +9 -3
  831. homeassistant/components/ukraine_alarm/translations/bg.json +9 -6
  832. homeassistant/components/ukraine_alarm/translations/ca.json +3 -6
  833. homeassistant/components/ukraine_alarm/translations/cs.json +9 -3
  834. homeassistant/components/ukraine_alarm/translations/de.json +9 -3
  835. homeassistant/components/ukraine_alarm/translations/el.json +3 -6
  836. homeassistant/components/ukraine_alarm/translations/en-GB.json +9 -3
  837. homeassistant/components/ukraine_alarm/translations/en.json +9 -3
  838. homeassistant/components/ukraine_alarm/translations/es.json +9 -3
  839. homeassistant/components/ukraine_alarm/translations/et.json +6 -0
  840. homeassistant/components/ukraine_alarm/translations/fi.json +3 -6
  841. homeassistant/components/ukraine_alarm/translations/fr.json +3 -6
  842. homeassistant/components/ukraine_alarm/translations/ga.json +3 -6
  843. homeassistant/components/ukraine_alarm/translations/hu.json +3 -6
  844. homeassistant/components/ukraine_alarm/translations/id.json +3 -6
  845. homeassistant/components/ukraine_alarm/translations/it.json +1 -8
  846. homeassistant/components/ukraine_alarm/translations/ja.json +3 -6
  847. homeassistant/components/ukraine_alarm/translations/ko.json +3 -6
  848. homeassistant/components/ukraine_alarm/translations/lt.json +9 -3
  849. homeassistant/components/ukraine_alarm/translations/nb.json +3 -6
  850. homeassistant/components/ukraine_alarm/translations/nl.json +3 -6
  851. homeassistant/components/ukraine_alarm/translations/pl.json +3 -6
  852. homeassistant/components/ukraine_alarm/translations/pt-BR.json +3 -6
  853. homeassistant/components/ukraine_alarm/translations/pt.json +9 -3
  854. homeassistant/components/ukraine_alarm/translations/ro.json +3 -6
  855. homeassistant/components/ukraine_alarm/translations/ru.json +3 -6
  856. homeassistant/components/ukraine_alarm/translations/sk.json +9 -3
  857. homeassistant/components/ukraine_alarm/translations/sv.json +3 -6
  858. homeassistant/components/ukraine_alarm/translations/tr.json +3 -6
  859. homeassistant/components/ukraine_alarm/translations/uk.json +3 -6
  860. homeassistant/components/ukraine_alarm/translations/zh-Hans.json +9 -3
  861. homeassistant/components/ukraine_alarm/translations/zh-Hant.json +9 -3
  862. homeassistant/components/unifiprotect/translations/vi.json +7 -0
  863. homeassistant/components/update/translations/mk.json +3 -0
  864. homeassistant/components/update/translations/sr-Latn.json +1 -0
  865. homeassistant/components/utility_meter/manifest.json +1 -1
  866. homeassistant/components/utility_meter/translations/mk.json +20 -0
  867. homeassistant/components/vacuum/translations/sr-Latn.json +1 -1
  868. homeassistant/components/vallox/translations/mk.json +13 -0
  869. homeassistant/components/vegehub/translations/sr-Latn.json +7 -0
  870. homeassistant/components/velux/translations/cs.json +1 -1
  871. homeassistant/components/velux/translations/de.json +1 -1
  872. homeassistant/components/velux/translations/el.json +0 -1
  873. homeassistant/components/velux/translations/en-GB.json +1 -1
  874. homeassistant/components/velux/translations/en.json +1 -1
  875. homeassistant/components/velux/translations/es.json +1 -1
  876. homeassistant/components/velux/translations/et.json +1 -1
  877. homeassistant/components/velux/translations/fi.json +0 -1
  878. homeassistant/components/velux/translations/fr.json +0 -1
  879. homeassistant/components/velux/translations/ga.json +0 -1
  880. homeassistant/components/velux/translations/gl.json +0 -1
  881. homeassistant/components/velux/translations/hu.json +0 -1
  882. homeassistant/components/velux/translations/it.json +0 -1
  883. homeassistant/components/velux/translations/ja.json +0 -1
  884. homeassistant/components/velux/translations/ko.json +0 -1
  885. homeassistant/components/velux/translations/lt.json +1 -1
  886. homeassistant/components/velux/translations/nl.json +0 -1
  887. homeassistant/components/velux/translations/pt.json +1 -1
  888. homeassistant/components/velux/translations/ru.json +0 -1
  889. homeassistant/components/velux/translations/sk.json +1 -1
  890. homeassistant/components/velux/translations/sv.json +7 -1
  891. homeassistant/components/velux/translations/tr.json +0 -1
  892. homeassistant/components/velux/translations/uk.json +0 -1
  893. homeassistant/components/velux/translations/vi.json +0 -1
  894. homeassistant/components/velux/translations/zh-Hans.json +1 -1
  895. homeassistant/components/velux/translations/zh-Hant.json +1 -1
  896. homeassistant/components/vesync/manifest.json +1 -1
  897. homeassistant/components/vesync/translations/bg.json +7 -0
  898. homeassistant/components/vesync/translations/en-GB.json +11 -0
  899. homeassistant/components/vesync/translations/ga.json +11 -0
  900. homeassistant/components/vesync/translations/it.json +11 -0
  901. homeassistant/components/vesync/translations/mk.json +11 -0
  902. homeassistant/components/vesync/translations/pt.json +11 -0
  903. homeassistant/components/vesync/translations/sr-Latn.json +2 -2
  904. homeassistant/components/vesync/translations/sv.json +11 -0
  905. homeassistant/components/voip/translations/sv.json +1 -1
  906. homeassistant/components/volvo/translations/ga.json +5 -0
  907. homeassistant/components/volvo/translations/it.json +5 -0
  908. homeassistant/components/volvo/translations/mk.json +9 -0
  909. homeassistant/components/volvo/translations/pt.json +5 -0
  910. homeassistant/components/volvo/translations/sr-Latn.json +8 -0
  911. homeassistant/components/volvo/translations/sv.json +37 -1
  912. homeassistant/components/volvo/translations/vi.json +1 -0
  913. homeassistant/components/wallbox/translations/bg.json +2 -1
  914. homeassistant/components/wallbox/translations/sr-Latn.json +1 -1
  915. homeassistant/components/water_heater/translations/bg.json +5 -0
  916. homeassistant/components/water_heater/translations/sr-Latn.json +3 -3
  917. homeassistant/components/watergate/translations/mk.json +15 -0
  918. homeassistant/components/weather/translations/mk.json +11 -1
  919. homeassistant/components/weather/translations/sv.json +1 -1
  920. homeassistant/components/weatherflow/translations/sv.json +1 -1
  921. homeassistant/components/webostv/translations/mk.json +12 -0
  922. homeassistant/components/webostv/translations/sv.json +3 -3
  923. homeassistant/components/weheat/translations/pl.json +1 -0
  924. homeassistant/components/weheat/translations/sv.json +3 -0
  925. homeassistant/components/wemo/translations/mk.json +11 -0
  926. homeassistant/components/wemo/translations/pl.json +10 -0
  927. homeassistant/components/whirlpool/translations/ca.json +30 -0
  928. homeassistant/components/whirlpool/translations/mk.json +3 -0
  929. homeassistant/components/whirlpool/translations/pl.json +3 -0
  930. homeassistant/components/whirlpool/translations/sv.json +66 -0
  931. homeassistant/components/wilight/translations/mk.json +25 -0
  932. homeassistant/components/withings/translations/sv.json +4 -1
  933. homeassistant/components/wolflink/translations/bg.json +1 -0
  934. homeassistant/components/wolflink/translations/sr-Latn.json +2 -2
  935. homeassistant/components/workday/translations/vi.json +5 -0
  936. homeassistant/components/wyoming/translations/bg.json +2 -1
  937. homeassistant/components/wyoming/translations/sr-Latn.json +1 -1
  938. homeassistant/components/xbox/coordinator.py +18 -2
  939. homeassistant/components/xbox/translations/es.json +1 -1
  940. homeassistant/components/xbox/translations/mk.json +7 -0
  941. homeassistant/components/xbox/translations/pt.json +11 -0
  942. homeassistant/components/xbox/translations/sv.json +47 -2
  943. homeassistant/components/xiaomi_aqara/translations/sr-Latn.json +3 -0
  944. homeassistant/components/xiaomi_ble/translations/mk.json +19 -0
  945. homeassistant/components/xiaomi_miio/translations/bg.json +5 -0
  946. homeassistant/components/xiaomi_miio/translations/mk.json +114 -0
  947. homeassistant/components/xiaomi_miio/translations/pt.json +4 -2
  948. homeassistant/components/xiaomi_miio/translations/ru.json +4 -2
  949. homeassistant/components/xiaomi_miio/translations/sr-Latn.json +1 -1
  950. homeassistant/components/xiaomi_miio/translations/sv.json +2 -1
  951. homeassistant/components/yale/translations/sv.json +3 -0
  952. homeassistant/components/yale_smart_alarm/translations/bg.json +4 -1
  953. homeassistant/components/yale_smart_alarm/translations/sr-Latn.json +1 -1
  954. homeassistant/components/yamaha_musiccast/translations/bg.json +5 -0
  955. homeassistant/components/yamaha_musiccast/translations/sr-Latn.json +1 -1
  956. homeassistant/components/yardian/translations/mk.json +11 -0
  957. homeassistant/components/yeelight/translations/bg.json +5 -0
  958. homeassistant/components/yeelight/translations/mk.json +1 -0
  959. homeassistant/components/yeelight/translations/sr-Latn.json +1 -1
  960. homeassistant/components/yolink/translations/bg.json +4 -2
  961. homeassistant/components/yolink/translations/mk.json +5 -0
  962. homeassistant/components/yolink/translations/sr-Latn.json +2 -2
  963. homeassistant/components/yolink/translations/sv.json +16 -0
  964. homeassistant/components/zha/config_flow.py +91 -27
  965. homeassistant/components/zha/manifest.json +1 -1
  966. homeassistant/components/zha/radio_manager.py +3 -2
  967. homeassistant/components/zha/translations/bg.json +53 -0
  968. homeassistant/components/zha/translations/cs.json +39 -0
  969. homeassistant/components/zha/translations/en-GB.json +71 -0
  970. homeassistant/components/zha/translations/es.json +39 -0
  971. homeassistant/components/zha/translations/et.json +39 -0
  972. homeassistant/components/zha/translations/ga.json +68 -0
  973. homeassistant/components/zha/translations/it.json +68 -0
  974. homeassistant/components/zha/translations/lt.json +71 -0
  975. homeassistant/components/zha/translations/mk.json +39 -0
  976. homeassistant/components/zha/translations/pl.json +25 -2
  977. homeassistant/components/zha/translations/pt.json +118 -1
  978. homeassistant/components/zha/translations/ru.json +40 -0
  979. homeassistant/components/zha/translations/sr-Latn.json +62 -0
  980. homeassistant/components/zha/translations/sv.json +56 -0
  981. homeassistant/components/zha/translations/uk.json +3 -0
  982. homeassistant/components/zha/translations/vi.json +10 -0
  983. homeassistant/components/zha/translations/zh-Hans.json +39 -0
  984. homeassistant/components/zha/translations/zh-Hant.json +39 -0
  985. homeassistant/components/zwave_js/translations/mk.json +20 -0
  986. homeassistant/components/zwave_js/translations/pl.json +93 -0
  987. homeassistant/components/zwave_js/translations/sr-Latn.json +6 -0
  988. homeassistant/components/zwave_js/translations/sv.json +18 -2
  989. homeassistant/config_entries.py +9 -7
  990. homeassistant/const.py +1 -1
  991. homeassistant/data_entry_flow.py +49 -35
  992. homeassistant/generated/config_flows.py +1 -1
  993. homeassistant/generated/integrations.json +2 -2
  994. homeassistant/package_constraints.txt +3 -3
  995. {homeassistant-2025.11.0b5.dist-info → homeassistant-2025.11.2.dist-info}/METADATA +2 -2
  996. {homeassistant-2025.11.0b5.dist-info → homeassistant-2025.11.2.dist-info}/RECORD +1005 -888
  997. homeassistant/components/sunricher_dali_center/const.py +0 -5
  998. homeassistant/components/sunricher_dali_center/translations/it.json +0 -11
  999. homeassistant/components/sunricher_dali_center/translations/sr-Latn.json +0 -11
  1000. /homeassistant/components/{sunricher_dali_center → sunricher_dali}/quality_scale.yaml +0 -0
  1001. /homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/el.json +0 -0
  1002. /homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/he.json +0 -0
  1003. /homeassistant/components/{sunricher_dali_center → sunricher_dali}/translations/nl.json +0 -0
  1004. {homeassistant-2025.11.0b5.dist-info → homeassistant-2025.11.2.dist-info}/WHEEL +0 -0
  1005. {homeassistant-2025.11.0b5.dist-info → homeassistant-2025.11.2.dist-info}/entry_points.txt +0 -0
  1006. {homeassistant-2025.11.0b5.dist-info → homeassistant-2025.11.2.dist-info}/licenses/LICENSE.md +0 -0
  1007. {homeassistant-2025.11.0b5.dist-info → homeassistant-2025.11.2.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  1008. {homeassistant-2025.11.0b5.dist-info → homeassistant-2025.11.2.dist-info}/top_level.txt +0 -0
@@ -8,13 +8,14 @@ import collections
8
8
  from contextlib import suppress
9
9
  from enum import StrEnum
10
10
  import json
11
+ import logging
11
12
  import os
12
13
  from typing import Any
13
14
 
14
15
  import voluptuous as vol
15
16
  from zha.application.const import RadioType
16
17
  import zigpy.backups
17
- from zigpy.config import CONF_DEVICE, CONF_DEVICE_PATH
18
+ from zigpy.config import CONF_DEVICE, CONF_DEVICE_PATH, CONF_NWK_TX_POWER
18
19
  from zigpy.exceptions import CannotWriteNetworkSettings, DestructiveWriteNetworkSettings
19
20
 
20
21
  from homeassistant.components import onboarding, usb
@@ -39,7 +40,7 @@ from homeassistant.config_entries import (
39
40
  )
40
41
  from homeassistant.const import CONF_NAME
41
42
  from homeassistant.core import HomeAssistant, callback
42
- from homeassistant.data_entry_flow import AbortFlow, progress_step
43
+ from homeassistant.data_entry_flow import AbortFlow
43
44
  from homeassistant.exceptions import HomeAssistantError
44
45
  from homeassistant.helpers.hassio import is_hassio
45
46
  from homeassistant.helpers.selector import FileSelector, FileSelectorConfig
@@ -57,6 +58,8 @@ from .radio_manager import (
57
58
  ZhaRadioManager,
58
59
  )
59
60
 
61
+ _LOGGER = logging.getLogger(__name__)
62
+
60
63
  CONF_MANUAL_PATH = "Enter Manually"
61
64
  DECONZ_DOMAIN = "deconz"
62
65
 
@@ -191,6 +194,13 @@ class BaseZhaFlow(ConfigEntryBaseFlow):
191
194
  self._hass = None # type: ignore[assignment]
192
195
  self._radio_mgr = ZhaRadioManager()
193
196
  self._restore_backup_task: asyncio.Task[None] | None = None
197
+ self._reset_old_radio_task: asyncio.Task[None] | None = None
198
+ self._form_network_task: asyncio.Task[None] | None = None
199
+ self._extra_network_config: dict[str, Any] = {}
200
+
201
+ # Progress flow steps cannot abort so we need to store the abort reason and then
202
+ # re-raise it in a dedicated step
203
+ self._progress_error: AbortFlow | None = None
194
204
 
195
205
  @property
196
206
  def hass(self) -> HomeAssistant:
@@ -223,6 +233,13 @@ class BaseZhaFlow(ConfigEntryBaseFlow):
223
233
  async def _async_create_radio_entry(self) -> ConfigFlowResult:
224
234
  """Create a config entry with the current flow state."""
225
235
 
236
+ async def async_step_progress_failed(
237
+ self, user_input: dict[str, Any] | None = None
238
+ ) -> ConfigFlowResult:
239
+ """Abort when progress step failed."""
240
+ assert self._progress_error is not None
241
+ raise self._progress_error
242
+
226
243
  async def async_step_choose_serial_port(
227
244
  self, user_input: dict[str, Any] | None = None
228
245
  ) -> ConfigFlowResult:
@@ -463,7 +480,22 @@ class BaseZhaFlow(ConfigEntryBaseFlow):
463
480
  self._radio_mgr.chosen_backup = self._radio_mgr.backups[0]
464
481
  return await self.async_step_maybe_reset_old_radio()
465
482
 
466
- @progress_step()
483
+ async def _async_reset_old_radio(self, config_entry: ConfigEntry) -> None:
484
+ """Do the work of resetting the old radio."""
485
+
486
+ # Unload ZHA before connecting to the old adapter
487
+ with suppress(OperationNotAllowed):
488
+ await self.hass.config_entries.async_unload(config_entry.entry_id)
489
+
490
+ # Create a radio manager to connect to the old stick to reset it
491
+ temp_radio_mgr = ZhaRadioManager()
492
+ temp_radio_mgr.hass = self.hass
493
+ temp_radio_mgr.device_path = config_entry.data[CONF_DEVICE][CONF_DEVICE_PATH]
494
+ temp_radio_mgr.device_settings = config_entry.data[CONF_DEVICE]
495
+ temp_radio_mgr.radio_type = RadioType[config_entry.data[CONF_RADIO_TYPE]]
496
+
497
+ await temp_radio_mgr.async_reset_adapter()
498
+
467
499
  async def async_step_maybe_reset_old_radio(
468
500
  self, user_input: dict[str, Any] | None = None
469
501
  ) -> ConfigFlowResult:
@@ -474,30 +506,37 @@ class BaseZhaFlow(ConfigEntryBaseFlow):
474
506
  DOMAIN, include_ignore=False
475
507
  )
476
508
 
477
- if config_entries:
509
+ if not config_entries:
510
+ return await self.async_step_restore_backup()
511
+
512
+ if self._reset_old_radio_task is None:
513
+ # This will only ever be called during migration, so there must be an
514
+ # existing config entry
478
515
  assert len(config_entries) == 1
479
516
  config_entry = config_entries[0]
480
517
 
481
- # Unload ZHA before connecting to the old adapter
482
- with suppress(OperationNotAllowed):
483
- await self.hass.config_entries.async_unload(config_entry.entry_id)
518
+ self._reset_old_radio_task = self.hass.async_create_task(
519
+ self._async_reset_old_radio(config_entry),
520
+ "Reset old radio",
521
+ )
484
522
 
485
- # Create a radio manager to connect to the old stick to reset it
486
- temp_radio_mgr = ZhaRadioManager()
487
- temp_radio_mgr.hass = self.hass
488
- temp_radio_mgr.device_path = config_entry.data[CONF_DEVICE][
489
- CONF_DEVICE_PATH
490
- ]
491
- temp_radio_mgr.device_settings = config_entry.data[CONF_DEVICE]
492
- temp_radio_mgr.radio_type = RadioType[config_entry.data[CONF_RADIO_TYPE]]
523
+ if not self._reset_old_radio_task.done():
524
+ return self.async_show_progress(
525
+ step_id="maybe_reset_old_radio",
526
+ progress_action="maybe_reset_old_radio",
527
+ progress_task=self._reset_old_radio_task,
528
+ )
493
529
 
494
- try:
495
- await temp_radio_mgr.async_reset_adapter()
496
- except HomeAssistantError:
497
- # Old adapter not found or cannot connect, show prompt to plug back in
498
- return await self.async_step_plug_in_old_radio()
530
+ try:
531
+ await self._reset_old_radio_task
532
+ except HomeAssistantError:
533
+ _LOGGER.exception("Failed to reset old radio during migration")
534
+ # Old adapter not found or cannot connect, show prompt to plug back in
535
+ return self.async_show_progress_done(next_step_id="plug_in_old_radio")
536
+ finally:
537
+ self._reset_old_radio_task = None
499
538
 
500
- return await self.async_step_restore_backup()
539
+ return self.async_show_progress_done(next_step_id="restore_backup")
501
540
 
502
541
  async def async_step_plug_in_old_radio(
503
542
  self, user_input: dict[str, Any] | None = None
@@ -617,15 +656,35 @@ class BaseZhaFlow(ConfigEntryBaseFlow):
617
656
  # This step exists only for translations, it does nothing new
618
657
  return await self.async_step_form_new_network(user_input)
619
658
 
620
- @progress_step()
659
+ async def _async_form_new_network(self) -> None:
660
+ """Do the work of forming a new network."""
661
+ await self._radio_mgr.async_form_network(config=self._extra_network_config)
662
+ # Load the newly formed network settings to get the network info
663
+ await self._radio_mgr.async_load_network_settings()
664
+
621
665
  async def async_step_form_new_network(
622
666
  self, user_input: dict[str, Any] | None = None
623
667
  ) -> ConfigFlowResult:
624
668
  """Form a brand-new network."""
625
- await self._radio_mgr.async_form_network()
626
- # Load the newly formed network settings to get the network info
627
- await self._radio_mgr.async_load_network_settings()
628
- return await self._async_create_radio_entry()
669
+ if self._form_network_task is None:
670
+ self._form_network_task = self.hass.async_create_task(
671
+ self._async_form_new_network(),
672
+ "Form new network",
673
+ )
674
+
675
+ if not self._form_network_task.done():
676
+ return self.async_show_progress(
677
+ step_id="form_new_network",
678
+ progress_action="form_new_network",
679
+ progress_task=self._form_network_task,
680
+ )
681
+
682
+ try:
683
+ await self._form_network_task
684
+ finally:
685
+ self._form_network_task = None
686
+
687
+ return self.async_show_progress_done(next_step_id="create_entry")
629
688
 
630
689
  def _parse_uploaded_backup(
631
690
  self, uploaded_file_id: str
@@ -730,13 +789,15 @@ class BaseZhaFlow(ConfigEntryBaseFlow):
730
789
  next_step_id="pre_confirm_ezsp_ieee_overwrite"
731
790
  )
732
791
  except HomeAssistantError:
792
+ _LOGGER.exception("Failed to restore network backup to new radio")
733
793
  # User unplugged the new adapter, allow retry
734
794
  return self.async_show_progress_done(next_step_id="pre_plug_in_new_radio")
735
795
  except CannotWriteNetworkSettings as exc:
736
- return self.async_abort(
796
+ self._progress_error = AbortFlow(
737
797
  reason="cannot_restore_backup",
738
798
  description_placeholders={"error": str(exc)},
739
799
  )
800
+ return self.async_show_progress_done(next_step_id="progress_failed")
740
801
  finally:
741
802
  self._restore_backup_task = None
742
803
 
@@ -1007,6 +1068,9 @@ class ZhaConfigFlowHandler(BaseZhaFlow, ConfigFlow, domain=DOMAIN):
1007
1068
  device_path = device_settings[CONF_DEVICE_PATH]
1008
1069
  self._flow_strategy = discovery_data.get("flow_strategy")
1009
1070
 
1071
+ if "tx_power" in discovery_data:
1072
+ self._extra_network_config[CONF_NWK_TX_POWER] = discovery_data["tx_power"]
1073
+
1010
1074
  await self._set_unique_id_and_update_ignored_flow(
1011
1075
  unique_id=f"{name}_{radio_type.name}_{device_path}",
1012
1076
  device_path=device_path,
@@ -21,7 +21,7 @@
21
21
  "zha",
22
22
  "universal_silabs_flasher"
23
23
  ],
24
- "requirements": ["zha==0.0.77"],
24
+ "requirements": ["zha==0.0.79"],
25
25
  "usb": [
26
26
  {
27
27
  "description": "*2652*",
@@ -78,6 +78,7 @@ HARDWARE_DISCOVERY_SCHEMA = vol.Schema(
78
78
  vol.Required("port"): DEVICE_SCHEMA,
79
79
  vol.Required("radio_type"): str,
80
80
  vol.Optional("flow_strategy"): vol.All(str, vol.Coerce(ZigbeeFlowStrategy)),
81
+ vol.Optional("tx_power"): vol.All(vol.Coerce(int), vol.Range(min=0, max=10)),
81
82
  }
82
83
  )
83
84
 
@@ -322,7 +323,7 @@ class ZhaRadioManager:
322
323
 
323
324
  return backup
324
325
 
325
- async def async_form_network(self) -> None:
326
+ async def async_form_network(self, config: dict[str, Any] | None) -> None:
326
327
  """Form a brand-new network."""
327
328
 
328
329
  # When forming a new network, we delete the ZHA database to prevent old devices
@@ -331,7 +332,7 @@ class ZhaRadioManager:
331
332
  await self.hass.async_add_executor_job(os.remove, self.zigpy_database_path)
332
333
 
333
334
  async with self.create_zigpy_app() as app:
334
- await app.form_network()
335
+ await app.form_network(config=config)
335
336
 
336
337
  async def async_reset_adapter(self) -> None:
337
338
  """Reset the current adapter."""
@@ -10,6 +10,10 @@
10
10
  "cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435"
11
11
  },
12
12
  "flow_title": "{name}",
13
+ "progress": {
14
+ "form_new_network": "\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0430 Zigbee \u043c\u0440\u0435\u0436\u0430. \u0412 \u0440\u0430\u043c\u043a\u0438\u0442\u0435 \u043d\u0430 \u0442\u043e\u0437\u0438 \u043f\u0440\u043e\u0446\u0435\u0441 \u0441\u043a\u0430\u043d\u0438\u0440\u0430\u043c\u0435 \u0437\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u0435\u043d \u043c\u0440\u0435\u0436\u043e\u0432 \u043a\u0430\u043d\u0430\u043b, \u043a\u043e\u0435\u0442\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u043e\u0442\u043d\u0435\u043c\u0435 \u043c\u0438\u043d\u0443\u0442\u0430.",
15
+ "restore_backup": "\u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0440\u0435\u0436\u043e\u0432\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u043d\u043e\u0432\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440.\n\n\u0422\u043e\u0432\u0430 \u0449\u0435 \u043e\u0442\u043d\u0435\u043c\u0435 \u043c\u0438\u043d\u0443\u0442\u0430."
16
+ },
13
17
  "step": {
14
18
  "choose_automatic_backup": {
15
19
  "data": {
@@ -58,6 +62,9 @@
58
62
  "confirm": {
59
63
  "description": "\u0418\u0441\u043a\u0430\u0442\u0435 \u043b\u0438 \u0434\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u0435 {name}?"
60
64
  },
65
+ "form_new_network": {
66
+ "title": "\u0424\u043e\u0440\u043c\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0430 \u043c\u0440\u0435\u0436\u0430"
67
+ },
61
68
  "manual_port_config": {
62
69
  "data_description": {
63
70
  "baudrate": "\u0421\u043a\u043e\u0440\u043e\u0441\u0442 \u043d\u0430 \u043f\u0440\u0435\u0434\u0430\u0432\u0430\u043d\u0435, \u043a\u043e\u044f\u0442\u043e \u0434\u0430 \u0441\u0435 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430 \u043f\u0440\u0438 \u043a\u043e\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u044a\u0441 \u0441\u0435\u0440\u0438\u0439\u043d\u0438\u044f \u043f\u043e\u0440\u0442, \u043e\u0431\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u043e 115200 \u0438\u043b\u0438 460800",
@@ -68,6 +75,24 @@
68
75
  "maybe_reset_old_radio": {
69
76
  "title": "\u041d\u0443\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0440\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440"
70
77
  },
78
+ "plug_in_new_radio": {
79
+ "description": "\u0412\u0430\u0448\u0438\u044f\u0442 \u043d\u043e\u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 `{device_path}` \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d.\n\u041c\u043e\u043b\u044f, \u0432\u043a\u043b\u044e\u0447\u0435\u0442\u0435 \u0433\u043e \u0438 \u0449\u0440\u0430\u043a\u043d\u0435\u0442\u0435 \u0432\u044a\u0440\u0445\u0443 \u0418\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435, \u0437\u0430 \u0434\u0430 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435.",
80
+ "title": "\u041d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d \u043d\u043e\u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440"
81
+ },
82
+ "plug_in_old_radio": {
83
+ "menu_option_descriptions": {
84
+ "retry_old_radio": "\u041e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u0441\u044a\u0441 \u0441\u0442\u0430\u0440\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440, \u0437\u0430 \u0434\u0430 \u0433\u043e \u043d\u0443\u043b\u0438\u0440\u0430\u0442\u0435 \u043a\u0430\u0442\u043e \u0447\u0430\u0441\u0442 \u043e\u0442 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430.",
85
+ "skip_reset_old_radio": "\u041f\u0440\u043e\u043f\u0443\u0441\u043d\u0435\u0442\u0435 \u043d\u0443\u043b\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0441\u0442\u0430\u0440\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u0438 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0435\u0442\u0435 \u0441 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430."
86
+ },
87
+ "menu_options": {
88
+ "retry_old_radio": "\u041f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0435",
89
+ "skip_reset_old_radio": "\u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u043d\u0443\u043b\u0438\u0440\u0430\u043d\u0435\u0442\u043e"
90
+ },
91
+ "title": "\u0421\u0442\u0430\u0440\u0438\u044f\u0442 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d"
92
+ },
93
+ "restore_backup": {
94
+ "title": "\u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0440\u0435\u0436\u0430\u0442\u0430 \u043a\u044a\u043c \u043d\u043e\u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440"
95
+ },
71
96
  "upload_manual_backup": {
72
97
  "data": {
73
98
  "uploaded_backup_file": "\u041a\u0430\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b"
@@ -453,6 +478,10 @@
453
478
  "cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435"
454
479
  },
455
480
  "flow_title": "{name}",
481
+ "progress": {
482
+ "form_new_network": "\u0421\u044a\u0437\u0434\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0430 Zigbee \u043c\u0440\u0435\u0436\u0430. \u0412 \u0440\u0430\u043c\u043a\u0438\u0442\u0435 \u043d\u0430 \u0442\u043e\u0437\u0438 \u043f\u0440\u043e\u0446\u0435\u0441 \u0441\u043a\u0430\u043d\u0438\u0440\u0430\u043c\u0435 \u0437\u0430 \u0441\u0432\u043e\u0431\u043e\u0434\u0435\u043d \u043c\u0440\u0435\u0436\u043e\u0432 \u043a\u0430\u043d\u0430\u043b, \u043a\u043e\u0435\u0442\u043e \u043c\u043e\u0436\u0435 \u0434\u0430 \u043e\u0442\u043d\u0435\u043c\u0435 \u043c\u0438\u043d\u0443\u0442\u0430.",
483
+ "restore_backup": "\u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0440\u0435\u0436\u043e\u0432\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u043d\u043e\u0432\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440.\n\n\u0422\u043e\u0432\u0430 \u0449\u0435 \u043e\u0442\u043d\u0435\u043c\u0435 \u043c\u0438\u043d\u0443\u0442\u0430."
484
+ },
456
485
  "step": {
457
486
  "choose_automatic_backup": {
458
487
  "data": {
@@ -486,9 +515,30 @@
486
515
  },
487
516
  "title": "\u041c\u0438\u0433\u0440\u0438\u0440\u0430\u043d\u0435 \u043a\u044a\u043c \u043d\u043e\u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440"
488
517
  },
518
+ "form_new_network": {
519
+ "title": "\u0424\u043e\u0440\u043c\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043d\u043e\u0432\u0430 \u043c\u0440\u0435\u0436\u0430"
520
+ },
489
521
  "init": {
490
522
  "title": "\u041f\u0440\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 ZHA"
491
523
  },
524
+ "maybe_reset_old_radio": {
525
+ "title": "\u041d\u0443\u043b\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0441\u0442\u0430\u0440\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440"
526
+ },
527
+ "plug_in_new_radio": {
528
+ "description": "\u0412\u0430\u0448\u0438\u044f\u0442 \u043d\u043e\u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 `{device_path}` \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d.\n\u041c\u043e\u043b\u044f, \u0432\u043a\u043b\u044e\u0447\u0435\u0442\u0435 \u0433\u043e \u0438 \u0449\u0440\u0430\u043a\u043d\u0435\u0442\u0435 \u0432\u044a\u0440\u0445\u0443 \u0418\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435, \u0437\u0430 \u0434\u0430 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435.",
529
+ "title": "\u041d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d \u043d\u043e\u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440"
530
+ },
531
+ "plug_in_old_radio": {
532
+ "menu_option_descriptions": {
533
+ "retry_old_radio": "\u041e\u043f\u0438\u0442\u0430\u0439\u0442\u0435 \u043e\u0442\u043d\u043e\u0432\u043e \u0434\u0430 \u0441\u0435 \u0441\u0432\u044a\u0440\u0436\u0435\u0442\u0435 \u0441\u044a\u0441 \u0441\u0442\u0430\u0440\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440, \u0437\u0430 \u0434\u0430 \u0433\u043e \u043d\u0443\u043b\u0438\u0440\u0430\u0442\u0435 \u043a\u0430\u0442\u043e \u0447\u0430\u0441\u0442 \u043e\u0442 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430.",
534
+ "skip_reset_old_radio": "\u041f\u0440\u043e\u043f\u0443\u0441\u043d\u0435\u0442\u0435 \u043d\u0443\u043b\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u043d\u0430 \u0441\u0442\u0430\u0440\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u0438 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0435\u0442\u0435 \u0441 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f\u0442\u0430."
535
+ },
536
+ "menu_options": {
537
+ "retry_old_radio": "\u041f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0435",
538
+ "skip_reset_old_radio": "\u041f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0435 \u043d\u0430 \u043d\u0443\u043b\u0438\u0440\u0430\u043d\u0435\u0442\u043e"
539
+ },
540
+ "title": "\u0421\u0442\u0430\u0440\u0438\u044f\u0442 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d"
541
+ },
492
542
  "prompt_migrate_or_reconfigure": {
493
543
  "menu_option_descriptions": {
494
544
  "intent_migrate": "\u0422\u043e\u0432\u0430 \u0449\u0435 \u0432\u0438 \u043f\u043e\u043c\u043e\u0433\u043d\u0435 \u0434\u0430 \u043c\u0438\u0433\u0440\u0438\u0440\u0430\u0442\u0435 \u0432\u0430\u0448\u0430\u0442\u0430 Zigbee \u043c\u0440\u0435\u0436\u0430 \u043e\u0442 \u0441\u0442\u0430\u0440\u0438\u044f \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u043a\u044a\u043c \u043d\u043e\u0432.",
@@ -496,6 +546,9 @@
496
546
  },
497
547
  "title": "\u041c\u0438\u0433\u0440\u0438\u0440\u0430\u043d\u0435 \u0438\u043b\u0438 \u043f\u0440\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0435"
498
548
  },
549
+ "restore_backup": {
550
+ "title": "\u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043c\u0440\u0435\u0436\u0430\u0442\u0430 \u043a\u044a\u043c \u043d\u043e\u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440"
551
+ },
499
552
  "upload_manual_backup": {
500
553
  "data": {
501
554
  "uploaded_backup_file": "\u041a\u0430\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b"
@@ -16,6 +16,11 @@
16
16
  "invalid_backup_json": "Neplatn\u00fd z\u00e1lo\u017en\u00ed JSON"
17
17
  },
18
18
  "flow_title": "{name}",
19
+ "progress": {
20
+ "form_new_network": "Vytvo\u0159en\u00ed nov\u00e9 s\u00edt\u011b Zigbee.\n \nV r\u00e1mci tohoto procesu hled\u00e1me voln\u00fd s\u00ed\u0165ov\u00fd kan\u00e1l, co\u017e m\u016f\u017ee trvat minutu.",
21
+ "maybe_reset_old_radio": "Resetov\u00e1n\u00ed star\u00e9ho adapt\u00e9ru.\n \nV\u00e1\u0161 star\u00fd adapt\u00e9r byl z\u00e1lohov\u00e1n a prob\u00edh\u00e1 obnoven\u00ed tov\u00e1rn\u00edho nastaven\u00ed.",
22
+ "restore_backup": "Obnoven\u00ed s\u00ed\u0165ov\u00fdch nastaven\u00ed do nov\u00e9ho adapt\u00e9ru.\n \nTo bude chv\u00edli trvat."
23
+ },
19
24
  "step": {
20
25
  "choose_automatic_backup": {
21
26
  "data": {
@@ -76,6 +81,16 @@
76
81
  "confirm": {
77
82
  "description": "Chcete nastavit {name}?"
78
83
  },
84
+ "confirm_ezsp_ieee_overwrite": {
85
+ "data": {
86
+ "overwrite_coordinator_ieee": "Trvale nahradit IEEE adresu adapt\u00e9ru"
87
+ },
88
+ "description": "Va\u0161e z\u00e1loha m\u00e1 jinou adresu IEEE ne\u017e v\u00e1\u0161 adapt\u00e9r. Aby s\u00ed\u0165 fungovala spr\u00e1vn\u011b, m\u011bla by b\u00fdt zm\u011bn\u011bna tak\u00e9 adresa IEEE va\u0161eho adapt\u00e9ru.\n\nJedn\u00e1 se o trvalou operaci.",
89
+ "title": "P\u0159epsat adresu IEEE adapt\u00e9ru"
90
+ },
91
+ "form_new_network": {
92
+ "title": "Vytv\u00e1\u0159en\u00ed nov\u00e9 s\u00edt\u011b"
93
+ },
79
94
  "manual_pick_radio_type": {
80
95
  "data": {
81
96
  "radio_type": "Typ adapt\u00e9ru"
@@ -116,6 +131,9 @@
116
131
  },
117
132
  "title": "Star\u00fd adapt\u00e9r nebyl nalezen"
118
133
  },
134
+ "restore_backup": {
135
+ "title": "Obnovov\u00e1n\u00ed s\u00edt\u011b na nov\u00fd adapt\u00e9r"
136
+ },
119
137
  "upload_manual_backup": {
120
138
  "data": {
121
139
  "uploaded_backup_file": "Nahr\u00e1t soubor"
@@ -1874,6 +1892,11 @@
1874
1892
  "invalid_backup_json": "Neplatn\u00fd z\u00e1lo\u017en\u00ed JSON"
1875
1893
  },
1876
1894
  "flow_title": "{name}",
1895
+ "progress": {
1896
+ "form_new_network": "Vytvo\u0159en\u00ed nov\u00e9 s\u00edt\u011b Zigbee.\n \nV r\u00e1mci tohoto procesu hled\u00e1me voln\u00fd s\u00ed\u0165ov\u00fd kan\u00e1l, co\u017e m\u016f\u017ee trvat minutu.",
1897
+ "maybe_reset_old_radio": "Resetov\u00e1n\u00ed star\u00e9ho adapt\u00e9ru.\n \nV\u00e1\u0161 star\u00fd adapt\u00e9r byl z\u00e1lohov\u00e1n a prob\u00edh\u00e1 obnoven\u00ed tov\u00e1rn\u00edho nastaven\u00ed.",
1898
+ "restore_backup": "Obnoven\u00ed s\u00ed\u0165ov\u00fdch nastaven\u00ed do nov\u00e9ho adapt\u00e9ru.\n \nTo bude chv\u00edli trvat."
1899
+ },
1877
1900
  "step": {
1878
1901
  "choose_automatic_backup": {
1879
1902
  "data": {
@@ -1919,6 +1942,16 @@
1919
1942
  "description": "Vyberte s\u00e9riov\u00fd port pro v\u00e1\u0161 adapt\u00e9r Zigbee.",
1920
1943
  "title": "Vybrat s\u00e9riov\u00fd port"
1921
1944
  },
1945
+ "confirm_ezsp_ieee_overwrite": {
1946
+ "data": {
1947
+ "overwrite_coordinator_ieee": "Trvale nahradit IEEE adresu adapt\u00e9ru"
1948
+ },
1949
+ "description": "Va\u0161e z\u00e1loha m\u00e1 jinou adresu IEEE ne\u017e v\u00e1\u0161 adapt\u00e9r. Aby s\u00ed\u0165 fungovala spr\u00e1vn\u011b, m\u011bla by b\u00fdt zm\u011bn\u011bna tak\u00e9 adresa IEEE va\u0161eho adapt\u00e9ru.\n\nJedn\u00e1 se o trvalou operaci.",
1950
+ "title": "P\u0159epsat adresu IEEE adapt\u00e9ru"
1951
+ },
1952
+ "form_new_network": {
1953
+ "title": "Vytv\u00e1\u0159en\u00ed nov\u00e9 s\u00edt\u011b"
1954
+ },
1922
1955
  "init": {
1923
1956
  "description": "Bude provedena z\u00e1loha a ZHA bude zastavena. Chcete pokra\u010dovat?",
1924
1957
  "title": "P\u0159enastavit ZHA"
@@ -1943,6 +1976,9 @@
1943
1976
  "description": "ZHA nedok\u00e1zala automaticky detekovat nastaven\u00ed s\u00e9riov\u00e9ho portu pro v\u00e1\u0161 adapt\u00e9r. Obvykle se jedn\u00e1 o probl\u00e9m s firmwarem nebo opr\u00e1vn\u011bn\u00edmi.\n \nPokud pou\u017e\u00edv\u00e1te firmware s nestandardn\u00edm nastaven\u00edm, zadejte nastaven\u00ed s\u00e9riov\u00e9ho portu.",
1944
1977
  "title": "Nastaven\u00ed s\u00e9riov\u00e9ho portu"
1945
1978
  },
1979
+ "maybe_reset_old_radio": {
1980
+ "title": "Resetov\u00e1n\u00ed star\u00e9ho adapt\u00e9ru"
1981
+ },
1946
1982
  "plug_in_new_radio": {
1947
1983
  "description": "V\u00e1\u0161 nov\u00fd adapt\u00e9r na adrese \"{device_path}\" nebyl nalezen.\nZapojte jej a klepn\u011bte na tla\u010d\u00edtko Odeslat pro pokra\u010dov\u00e1n\u00ed.",
1948
1984
  "title": "Nov\u00fd adapt\u00e9r nebyl nalezen"
@@ -1971,6 +2007,9 @@
1971
2007
  },
1972
2008
  "title": "Migrovat nebo p\u0159enastavit"
1973
2009
  },
2010
+ "restore_backup": {
2011
+ "title": "Obnovov\u00e1n\u00ed s\u00edt\u011b na nov\u00fd adapt\u00e9r"
2012
+ },
1974
2013
  "upload_manual_backup": {
1975
2014
  "data": {
1976
2015
  "uploaded_backup_file": "Nahr\u00e1t soubor"
@@ -16,6 +16,11 @@
16
16
  "invalid_backup_json": "Invalid backup JSON"
17
17
  },
18
18
  "flow_title": "{name}",
19
+ "progress": {
20
+ "form_new_network": "Forming a new Zigbee network.\n\nWe scan for a clear network channel as part of this process, this can take a minute.",
21
+ "maybe_reset_old_radio": "Resetting old adapter.\n\nYour old adapter has been backed up and is being factory reset.",
22
+ "restore_backup": "Restoring network settings to new adapter.\n\nThis will take a minute."
23
+ },
19
24
  "step": {
20
25
  "choose_automatic_backup": {
21
26
  "data": {
@@ -76,6 +81,16 @@
76
81
  "confirm": {
77
82
  "description": "Do you want to set up {name}?"
78
83
  },
84
+ "confirm_ezsp_ieee_overwrite": {
85
+ "data": {
86
+ "overwrite_coordinator_ieee": "Permanently replace the adapter IEEE address"
87
+ },
88
+ "description": "Your backup has a different IEEE address than your adapter. For your network to function properly, the IEEE address of your adapter should also be changed.\n\nThis is a permanent operation.",
89
+ "title": "Overwrite adapter IEEE address"
90
+ },
91
+ "form_new_network": {
92
+ "title": "Forming new network"
93
+ },
79
94
  "manual_pick_radio_type": {
80
95
  "data": {
81
96
  "radio_type": "Adapter type"
@@ -100,6 +115,25 @@
100
115
  "maybe_reset_old_radio": {
101
116
  "title": "Resetting old adapter"
102
117
  },
118
+ "plug_in_new_radio": {
119
+ "description": "Your new adapter at `{device_path}` was not found.\nPlease plug it in and click Submit to continue.",
120
+ "title": "New adapter not found"
121
+ },
122
+ "plug_in_old_radio": {
123
+ "description": "Your old adapter at `{device_path}` was not found. You can retry after plugging it back in, or skip resetting the old adapter.\n\n**Warning:** If you skip resetting the old adapter, ensure it remains permanently disconnected. Plugging it back in later will cause network issues.",
124
+ "menu_option_descriptions": {
125
+ "retry_old_radio": "Retry connecting to the old adapter to reset it as part of the migration.",
126
+ "skip_reset_old_radio": "Skip resetting the old adapter and continue with the migration."
127
+ },
128
+ "menu_options": {
129
+ "retry_old_radio": "Retry",
130
+ "skip_reset_old_radio": "Skip reset"
131
+ },
132
+ "title": "Old adapter not found"
133
+ },
134
+ "restore_backup": {
135
+ "title": "Restoring network to new adapter"
136
+ },
103
137
  "upload_manual_backup": {
104
138
  "data": {
105
139
  "uploaded_backup_file": "Upload a file"
@@ -1858,6 +1892,11 @@
1858
1892
  "invalid_backup_json": "Invalid backup JSON"
1859
1893
  },
1860
1894
  "flow_title": "{name}",
1895
+ "progress": {
1896
+ "form_new_network": "Forming a new Zigbee network.\n\nWe scan for a clear network channel as part of this process, this can take a minute.",
1897
+ "maybe_reset_old_radio": "Resetting old adapter.\n\nYour old adapter has been backed up and is being factory reset.",
1898
+ "restore_backup": "Restoring network settings to new adapter.\n\nThis will take a minute."
1899
+ },
1861
1900
  "step": {
1862
1901
  "choose_automatic_backup": {
1863
1902
  "data": {
@@ -1903,6 +1942,16 @@
1903
1942
  "description": "Select the serial port for your Zigbee adapter",
1904
1943
  "title": "Select a serial port"
1905
1944
  },
1945
+ "confirm_ezsp_ieee_overwrite": {
1946
+ "data": {
1947
+ "overwrite_coordinator_ieee": "Permanently replace the adapter IEEE address"
1948
+ },
1949
+ "description": "Your backup has a different IEEE address than your adapter. For your network to function properly, the IEEE address of your adapter should also be changed.\n\nThis is a permanent operation.",
1950
+ "title": "Overwrite adapter IEEE address"
1951
+ },
1952
+ "form_new_network": {
1953
+ "title": "Forming new network"
1954
+ },
1906
1955
  "init": {
1907
1956
  "description": "A backup will be performed and ZHA will be stopped. Do you wish to continue?",
1908
1957
  "title": "Reconfigure ZHA"
@@ -1927,6 +1976,25 @@
1927
1976
  "description": "ZHA was not able to automatically detect serial port settings for your adapter. This usually is an issue with the firmware or permissions.\n\nIf you are using firmware with non-standard settings, enter the serial port settings",
1928
1977
  "title": "Serial port settings"
1929
1978
  },
1979
+ "maybe_reset_old_radio": {
1980
+ "title": "Resetting old adapter"
1981
+ },
1982
+ "plug_in_new_radio": {
1983
+ "description": "Your new adapter at `{device_path}` was not found.\nPlease plug it in and click Submit to continue.",
1984
+ "title": "New adapter not found"
1985
+ },
1986
+ "plug_in_old_radio": {
1987
+ "description": "Your old adapter at `{device_path}` was not found. You can retry after plugging it back in, or skip resetting the old adapter.\n\n**Warning:** If you skip resetting the old adapter, ensure it remains permanently disconnected. Plugging it back in later will cause network issues.",
1988
+ "menu_option_descriptions": {
1989
+ "retry_old_radio": "Retry connecting to the old adapter to reset it as part of the migration.",
1990
+ "skip_reset_old_radio": "Skip resetting the old adapter and continue with the migration."
1991
+ },
1992
+ "menu_options": {
1993
+ "retry_old_radio": "Retry",
1994
+ "skip_reset_old_radio": "Skip reset"
1995
+ },
1996
+ "title": "Old adapter not found"
1997
+ },
1930
1998
  "prompt_migrate_or_reconfigure": {
1931
1999
  "description": "Are you migrating to a new adapter or re-configuring the current adapter?",
1932
2000
  "menu_option_descriptions": {
@@ -1939,6 +2007,9 @@
1939
2007
  },
1940
2008
  "title": "Migrate or re-configure"
1941
2009
  },
2010
+ "restore_backup": {
2011
+ "title": "Restoring network to new adapter"
2012
+ },
1942
2013
  "upload_manual_backup": {
1943
2014
  "data": {
1944
2015
  "uploaded_backup_file": "Upload a file"
@@ -16,6 +16,11 @@
16
16
  "invalid_backup_json": "Copia de seguridad JSON no v\u00e1lida"
17
17
  },
18
18
  "flow_title": "{name}",
19
+ "progress": {
20
+ "form_new_network": "Creando una nueva red Zigbee. \n \nComo parte de este proceso, buscamos un canal de red libre; esto puede tardar un minuto.",
21
+ "maybe_reset_old_radio": "Restableciendo el adaptador antiguo. \n \nSe ha realizado una copia de seguridad de tu adaptador antiguo y se est\u00e1 restableciendo a la configuraci\u00f3n de f\u00e1brica.",
22
+ "restore_backup": "Restaurando la configuraci\u00f3n de red en el nuevo adaptador.\n\nEsto tardar\u00e1 un minuto."
23
+ },
19
24
  "step": {
20
25
  "choose_automatic_backup": {
21
26
  "data": {
@@ -76,6 +81,16 @@
76
81
  "confirm": {
77
82
  "description": "\u00bfQuieres configurar {name} ?"
78
83
  },
84
+ "confirm_ezsp_ieee_overwrite": {
85
+ "data": {
86
+ "overwrite_coordinator_ieee": "Reemplazar permanentemente la direcci\u00f3n IEEE del adaptador"
87
+ },
88
+ "description": "Tu copia de seguridad tiene una direcci\u00f3n IEEE diferente a la de tu adaptador. Para que tu red funcione correctamente, tambi\u00e9n debes cambiar la direcci\u00f3n IEEE de tu adaptador. \n \nEsta operaci\u00f3n es permanente.",
89
+ "title": "Sobrescribir la direcci\u00f3n IEEE del adaptador"
90
+ },
91
+ "form_new_network": {
92
+ "title": "Formar una nueva red"
93
+ },
79
94
  "manual_pick_radio_type": {
80
95
  "data": {
81
96
  "radio_type": "Tipo de adaptador"
@@ -116,6 +131,9 @@
116
131
  },
117
132
  "title": "No se encontr\u00f3 el adaptador antiguo"
118
133
  },
134
+ "restore_backup": {
135
+ "title": "Restauraci\u00f3n de la red al nuevo adaptador"
136
+ },
119
137
  "upload_manual_backup": {
120
138
  "data": {
121
139
  "uploaded_backup_file": "Subir un archivo"
@@ -1874,6 +1892,11 @@
1874
1892
  "invalid_backup_json": "Copia de seguridad JSON no v\u00e1lida"
1875
1893
  },
1876
1894
  "flow_title": "{name}",
1895
+ "progress": {
1896
+ "form_new_network": "Creando una nueva red Zigbee. \n \nComo parte de este proceso, buscamos un canal de red libre; esto puede tardar un minuto.",
1897
+ "maybe_reset_old_radio": "Restableciendo el adaptador antiguo. \n \nSe ha realizado una copia de seguridad de tu adaptador antiguo y se est\u00e1 restableciendo a la configuraci\u00f3n de f\u00e1brica.",
1898
+ "restore_backup": "Restaurando la configuraci\u00f3n de red en el nuevo adaptador.\n\nEsto tardar\u00e1 un minuto."
1899
+ },
1877
1900
  "step": {
1878
1901
  "choose_automatic_backup": {
1879
1902
  "data": {
@@ -1919,6 +1942,16 @@
1919
1942
  "description": "Selecciona el puerto serie para tu adaptador Zigbee",
1920
1943
  "title": "Seleccionar un puerto serie"
1921
1944
  },
1945
+ "confirm_ezsp_ieee_overwrite": {
1946
+ "data": {
1947
+ "overwrite_coordinator_ieee": "Reemplazar permanentemente la direcci\u00f3n IEEE del adaptador"
1948
+ },
1949
+ "description": "Tu copia de seguridad tiene una direcci\u00f3n IEEE diferente a la de tu adaptador. Para que tu red funcione correctamente, tambi\u00e9n debes cambiar la direcci\u00f3n IEEE de tu adaptador. \n \nEsta operaci\u00f3n es permanente.",
1950
+ "title": "Sobrescribir la direcci\u00f3n IEEE del adaptador"
1951
+ },
1952
+ "form_new_network": {
1953
+ "title": "Formar una nueva red"
1954
+ },
1922
1955
  "init": {
1923
1956
  "description": "Se realizar\u00e1 una copia de seguridad y se detendr\u00e1 ZHA. \u00bfQuieres continuar?",
1924
1957
  "title": "Volver a configurar ZHA"
@@ -1943,6 +1976,9 @@
1943
1976
  "description": "ZHA no pudo detectar autom\u00e1ticamente la configuraci\u00f3n del puerto serie de tu adaptador. Esto suele deberse a un problema con el firmware o los permisos. \n \nSi utilizas un firmware con una configuraci\u00f3n no est\u00e1ndar, introduce la configuraci\u00f3n del puerto serie.",
1944
1977
  "title": "Configuraci\u00f3n del puerto serie"
1945
1978
  },
1979
+ "maybe_reset_old_radio": {
1980
+ "title": "Restablecer el adaptador antiguo"
1981
+ },
1946
1982
  "plug_in_new_radio": {
1947
1983
  "description": "No se encontr\u00f3 el nuevo adaptador en `{device_path}`. Por favor, con\u00e9ctalo y haz clic en Enviar para continuar.",
1948
1984
  "title": "No se encontr\u00f3 el nuevo adaptador."
@@ -1971,6 +2007,9 @@
1971
2007
  },
1972
2008
  "title": "Migrar o volver a configurar"
1973
2009
  },
2010
+ "restore_backup": {
2011
+ "title": "Restauraci\u00f3n de la red al nuevo adaptador"
2012
+ },
1974
2013
  "upload_manual_backup": {
1975
2014
  "data": {
1976
2015
  "uploaded_backup_file": "Subir un archivo"