homeassistant 2025.12.0__py3-none-any.whl → 2025.12.0b2__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 (974) hide show
  1. homeassistant/auth/permissions/events.py +0 -2
  2. homeassistant/components/acaia/translations/pl.json +1 -23
  3. homeassistant/components/accuweather/translations/tr.json +0 -19
  4. homeassistant/components/ai_task/translations/tr.json +0 -17
  5. homeassistant/components/airly/translations/sr-Latn.json +0 -7
  6. homeassistant/components/airnow/translations/sr-Latn.json +0 -3
  7. homeassistant/components/airobot/translations/bg.json +2 -1
  8. homeassistant/components/airobot/translations/cs.json +1 -1
  9. homeassistant/components/airobot/translations/de.json +1 -1
  10. homeassistant/components/airobot/translations/el.json +1 -4
  11. homeassistant/components/airobot/translations/en-GB.json +1 -1
  12. homeassistant/components/airobot/translations/en.json +1 -1
  13. homeassistant/components/airobot/translations/et.json +1 -1
  14. homeassistant/components/airobot/translations/lt.json +1 -1
  15. homeassistant/components/airobot/translations/nl.json +2 -1
  16. homeassistant/components/airobot/translations/pt.json +5 -1
  17. homeassistant/components/airobot/translations/sk.json +1 -1
  18. homeassistant/components/airobot/translations/sv.json +2 -1
  19. homeassistant/components/airobot/translations/tr.json +5 -1
  20. homeassistant/components/airobot/translations/zh-Hans.json +1 -1
  21. homeassistant/components/airobot/translations/zh-Hant.json +1 -1
  22. homeassistant/components/airq/translations/sr-Latn.json +0 -7
  23. homeassistant/components/airthings/translations/tr.json +1 -2
  24. homeassistant/components/airthings_ble/translations/sr-Latn.json +0 -7
  25. homeassistant/components/airthings_ble/translations/tr.json +0 -7
  26. homeassistant/components/airvisual/translations/sr-Latn.json +0 -14
  27. homeassistant/components/airzone/translations/tr.json +0 -9
  28. homeassistant/components/aladdin_connect/translations/tr.json +1 -7
  29. homeassistant/components/alarm_control_panel/strings.json +21 -14
  30. homeassistant/components/alarm_control_panel/translations/cs.json +19 -12
  31. homeassistant/components/alarm_control_panel/translations/de.json +14 -7
  32. homeassistant/components/alarm_control_panel/translations/en-GB.json +1 -86
  33. homeassistant/components/alarm_control_panel/translations/en.json +21 -14
  34. homeassistant/components/alarm_control_panel/translations/es.json +1 -86
  35. homeassistant/components/alarm_control_panel/translations/et.json +1 -86
  36. homeassistant/components/alarm_control_panel/translations/ga.json +1 -72
  37. homeassistant/components/alarm_control_panel/translations/lt.json +21 -14
  38. homeassistant/components/alarm_control_panel/translations/pt.json +31 -14
  39. homeassistant/components/alarm_control_panel/translations/sk.json +21 -14
  40. homeassistant/components/alarm_control_panel/translations/sr-Latn.json +1 -5
  41. homeassistant/components/alarm_control_panel/translations/tr.json +1 -72
  42. homeassistant/components/alarm_control_panel/translations/zh-Hans.json +6 -1
  43. homeassistant/components/alarm_control_panel/translations/zh-Hant.json +21 -14
  44. homeassistant/components/alexa_devices/translations/it.json +1 -24
  45. homeassistant/components/alexa_devices/translations/tr.json +0 -52
  46. homeassistant/components/androidtv_remote/translations/mk.json +0 -7
  47. homeassistant/components/anglian_water/__init__.py +2 -6
  48. homeassistant/components/anglian_water/entity.py +1 -5
  49. homeassistant/components/anglian_water/sensor.py +2 -1
  50. homeassistant/components/anglian_water/strings.json +1 -1
  51. homeassistant/components/anglian_water/translations/de.json +1 -1
  52. homeassistant/components/anglian_water/translations/en.json +1 -1
  53. homeassistant/components/anglian_water/translations/et.json +1 -19
  54. homeassistant/components/anglian_water/translations/pt.json +2 -1
  55. homeassistant/components/anglian_water/translations/sk.json +1 -1
  56. homeassistant/components/anglian_water/translations/zh-Hans.json +2 -32
  57. homeassistant/components/aosmith/translations/tr.json +0 -11
  58. homeassistant/components/apcupsd/translations/es.json +0 -14
  59. homeassistant/components/apcupsd/translations/sr-Latn.json +0 -3
  60. homeassistant/components/apple_tv/manifest.json +0 -1
  61. homeassistant/components/assist_pipeline/pipeline.py +57 -58
  62. homeassistant/components/assist_satellite/manifest.json +1 -1
  63. homeassistant/components/assist_satellite/strings.json +12 -8
  64. homeassistant/components/assist_satellite/translations/cs.json +12 -8
  65. homeassistant/components/assist_satellite/translations/de.json +12 -8
  66. homeassistant/components/assist_satellite/translations/en-GB.json +1 -54
  67. homeassistant/components/assist_satellite/translations/en.json +12 -8
  68. homeassistant/components/assist_satellite/translations/es.json +1 -54
  69. homeassistant/components/assist_satellite/translations/et.json +1 -54
  70. homeassistant/components/assist_satellite/translations/ga.json +1 -46
  71. homeassistant/components/assist_satellite/translations/lt.json +12 -8
  72. homeassistant/components/assist_satellite/translations/pt.json +16 -4
  73. homeassistant/components/assist_satellite/translations/sk.json +12 -8
  74. homeassistant/components/assist_satellite/translations/tr.json +1 -46
  75. homeassistant/components/assist_satellite/translations/zh-Hans.json +0 -5
  76. homeassistant/components/assist_satellite/translations/zh-Hant.json +12 -8
  77. homeassistant/components/august/translations/tr.json +1 -23
  78. homeassistant/components/automation/__init__.py +0 -1
  79. homeassistant/components/automation/manifest.json +0 -2
  80. homeassistant/components/automation/strings.json +4 -4
  81. homeassistant/components/automation/translations/cs.json +4 -4
  82. homeassistant/components/automation/translations/de.json +4 -4
  83. homeassistant/components/automation/translations/en-GB.json +0 -8
  84. homeassistant/components/automation/translations/en.json +4 -4
  85. homeassistant/components/automation/translations/es.json +0 -8
  86. homeassistant/components/automation/translations/et.json +4 -4
  87. homeassistant/components/automation/translations/fr.json +0 -8
  88. homeassistant/components/automation/translations/lt.json +4 -4
  89. homeassistant/components/automation/translations/pt.json +8 -0
  90. homeassistant/components/automation/translations/sk.json +4 -4
  91. homeassistant/components/automation/translations/sr-Latn.json +0 -28
  92. homeassistant/components/automation/translations/zh-Hant.json +4 -4
  93. homeassistant/components/backblaze_b2/translations/de.json +2 -2
  94. homeassistant/components/backblaze_b2/translations/es.json +1 -1
  95. homeassistant/components/bang_olufsen/translations/es.json +0 -992
  96. homeassistant/components/bang_olufsen/translations/ga.json +0 -992
  97. homeassistant/components/bang_olufsen/translations/nl.json +3 -76
  98. homeassistant/components/bang_olufsen/translations/pt.json +0 -1
  99. homeassistant/components/bayesian/translations/sr-Latn.json +1 -2
  100. homeassistant/components/bayesian/translations/tr.json +10 -81
  101. homeassistant/components/binary_sensor/icons.json +0 -8
  102. homeassistant/components/binary_sensor/strings.json +1 -36
  103. homeassistant/components/binary_sensor/translations/cs.json +1 -36
  104. homeassistant/components/binary_sensor/translations/de.json +1 -36
  105. homeassistant/components/binary_sensor/translations/en-GB.json +1 -36
  106. homeassistant/components/binary_sensor/translations/en.json +1 -36
  107. homeassistant/components/binary_sensor/translations/es.json +1 -36
  108. homeassistant/components/binary_sensor/translations/et.json +1 -36
  109. homeassistant/components/binary_sensor/translations/lt.json +1 -36
  110. homeassistant/components/binary_sensor/translations/mk.json +0 -8
  111. homeassistant/components/binary_sensor/translations/sk.json +1 -36
  112. homeassistant/components/binary_sensor/translations/sr-Latn.json +0 -1
  113. homeassistant/components/binary_sensor/translations/zh-Hant.json +1 -36
  114. homeassistant/components/blebox/translations/sr-Latn.json +0 -1
  115. homeassistant/components/blink/translations/tr.json +1 -16
  116. homeassistant/components/blue_current/translations/tr.json +0 -44
  117. homeassistant/components/bosch_alarm/__init__.py +2 -2
  118. homeassistant/components/bosch_alarm/config_flow.py +1 -1
  119. homeassistant/components/bosch_alarm/diagnostics.py +1 -2
  120. homeassistant/components/bosch_alarm/entity.py +1 -1
  121. homeassistant/components/bosch_alarm/manifest.json +1 -1
  122. homeassistant/components/broadlink/manifest.json +0 -1
  123. homeassistant/components/broadlink/translations/sr-Latn.json +0 -5
  124. homeassistant/components/brother/translations/tr.json +2 -53
  125. homeassistant/components/bsblan/translations/sr-Latn.json +0 -4
  126. homeassistant/components/bsblan/translations/tr.json +2 -22
  127. homeassistant/components/bthome/translations/tr.json +0 -35
  128. homeassistant/components/button/translations/sr-Latn.json +0 -20
  129. homeassistant/components/camera/__init__.py +1 -1
  130. homeassistant/components/camera/translations/mk.json +2 -4
  131. homeassistant/components/climate/strings.json +15 -10
  132. homeassistant/components/climate/translations/cs.json +15 -10
  133. homeassistant/components/climate/translations/de.json +10 -5
  134. homeassistant/components/climate/translations/el.json +1 -54
  135. homeassistant/components/climate/translations/en-GB.json +1 -64
  136. homeassistant/components/climate/translations/en.json +15 -10
  137. homeassistant/components/climate/translations/es.json +1 -64
  138. homeassistant/components/climate/translations/et.json +6 -57
  139. homeassistant/components/climate/translations/ga.json +1 -54
  140. homeassistant/components/climate/translations/lt.json +9 -26
  141. homeassistant/components/climate/translations/mk.json +3 -10
  142. homeassistant/components/climate/translations/pt.json +12 -19
  143. homeassistant/components/climate/translations/ru.json +1 -54
  144. homeassistant/components/climate/translations/sk.json +15 -10
  145. homeassistant/components/climate/translations/sr-Latn.json +3 -101
  146. homeassistant/components/climate/translations/sv.json +1 -17
  147. homeassistant/components/climate/translations/tr.json +1 -54
  148. homeassistant/components/climate/translations/zh-Hans.json +0 -14
  149. homeassistant/components/climate/translations/zh-Hant.json +15 -10
  150. homeassistant/components/cloud/__init__.py +5 -18
  151. homeassistant/components/cloud/ai_task.py +12 -5
  152. homeassistant/components/cloud/client.py +5 -9
  153. homeassistant/components/cloud/conversation.py +11 -2
  154. homeassistant/components/cloud/entity.py +6 -5
  155. homeassistant/components/cloud/http_api.py +0 -21
  156. homeassistant/components/cloud/manifest.json +1 -1
  157. homeassistant/components/cloud/translations/en-GB.json +0 -7
  158. homeassistant/components/cloud/translations/es.json +0 -7
  159. homeassistant/components/cloud/translations/et.json +0 -7
  160. homeassistant/components/cloud/translations/ga.json +0 -7
  161. homeassistant/components/cloud/translations/tr.json +0 -7
  162. homeassistant/components/coinbase/translations/tr.json +1 -10
  163. homeassistant/components/comelit/translations/tr.json +0 -2
  164. homeassistant/components/conversation/__init__.py +3 -8
  165. homeassistant/components/conversation/default_agent.py +56 -61
  166. homeassistant/components/conversation/manifest.json +1 -1
  167. homeassistant/components/counter/translations/sr-Latn.json +1 -41
  168. homeassistant/components/cover/icons.json +29 -0
  169. homeassistant/components/cover/strings.json +159 -1
  170. homeassistant/components/cover/translations/cs.json +159 -1
  171. homeassistant/components/cover/translations/de.json +159 -1
  172. homeassistant/components/cover/translations/en.json +159 -1
  173. homeassistant/components/cover/translations/et.json +30 -1
  174. homeassistant/components/cover/translations/lt.json +159 -1
  175. homeassistant/components/cover/translations/pt.json +158 -1
  176. homeassistant/components/cover/translations/sk.json +159 -1
  177. homeassistant/components/cover/translations/sr-Latn.json +1 -5
  178. homeassistant/components/cover/translations/zh-Hans.json +105 -1
  179. homeassistant/components/cover/translations/zh-Hant.json +159 -1
  180. homeassistant/components/cover/trigger.py +116 -0
  181. homeassistant/components/cover/triggers.yaml +79 -0
  182. homeassistant/components/deconz/translations/mk.json +1 -3
  183. homeassistant/components/deluge/translations/tr.json +0 -8
  184. homeassistant/components/derivative/translations/es.json +0 -6
  185. homeassistant/components/derivative/translations/ga.json +0 -6
  186. homeassistant/components/derivative/translations/sr-Latn.json +4 -41
  187. homeassistant/components/dlna_dmr/manifest.json +0 -1
  188. homeassistant/components/dlna_dms/manifest.json +0 -1
  189. homeassistant/components/downloader/translations/tr.json +0 -8
  190. homeassistant/components/duckdns/translations/en-GB.json +0 -1
  191. homeassistant/components/duckdns/translations/es.json +0 -41
  192. homeassistant/components/duckdns/translations/ga.json +0 -40
  193. homeassistant/components/ecovacs/manifest.json +1 -1
  194. homeassistant/components/ecovacs/translations/tr.json +2 -50
  195. homeassistant/components/ecowitt/manifest.json +0 -1
  196. homeassistant/components/elevenlabs/translations/tr.json +1 -17
  197. homeassistant/components/elkm1/translations/tr.json +0 -4
  198. homeassistant/components/energyid/translations/zh-Hans.json +1 -17
  199. homeassistant/components/enphase_envoy/manifest.json +1 -1
  200. homeassistant/components/enphase_envoy/translations/tr.json +0 -15
  201. homeassistant/components/esphome/const.py +1 -1
  202. homeassistant/components/esphome/manifest.json +1 -1
  203. homeassistant/components/esphome/strings.json +1 -1
  204. homeassistant/components/esphome/translations/bg.json +1 -0
  205. homeassistant/components/esphome/translations/ca.json +1 -0
  206. homeassistant/components/esphome/translations/cs.json +1 -1
  207. homeassistant/components/esphome/translations/da.json +1 -0
  208. homeassistant/components/esphome/translations/de.json +1 -1
  209. homeassistant/components/esphome/translations/el.json +1 -0
  210. homeassistant/components/esphome/translations/en-GB.json +1 -1
  211. homeassistant/components/esphome/translations/en.json +1 -1
  212. homeassistant/components/esphome/translations/es.json +1 -1
  213. homeassistant/components/esphome/translations/et.json +1 -1
  214. homeassistant/components/esphome/translations/fi.json +1 -0
  215. homeassistant/components/esphome/translations/fr.json +1 -0
  216. homeassistant/components/esphome/translations/ga.json +1 -0
  217. homeassistant/components/esphome/translations/he.json +1 -0
  218. homeassistant/components/esphome/translations/hu.json +1 -0
  219. homeassistant/components/esphome/translations/id.json +1 -0
  220. homeassistant/components/esphome/translations/it.json +1 -0
  221. homeassistant/components/esphome/translations/ja.json +1 -0
  222. homeassistant/components/esphome/translations/ko.json +1 -0
  223. homeassistant/components/esphome/translations/lt.json +1 -1
  224. homeassistant/components/esphome/translations/nb.json +1 -0
  225. homeassistant/components/esphome/translations/nl.json +1 -0
  226. homeassistant/components/esphome/translations/pl.json +1 -0
  227. homeassistant/components/esphome/translations/pt-BR.json +1 -0
  228. homeassistant/components/esphome/translations/pt.json +1 -1
  229. homeassistant/components/esphome/translations/ro.json +1 -0
  230. homeassistant/components/esphome/translations/ru.json +1 -0
  231. homeassistant/components/esphome/translations/sk.json +1 -1
  232. homeassistant/components/esphome/translations/sl.json +1 -0
  233. homeassistant/components/esphome/translations/sv.json +1 -0
  234. homeassistant/components/esphome/translations/tr.json +1 -1
  235. homeassistant/components/esphome/translations/uk.json +1 -0
  236. homeassistant/components/esphome/translations/vi.json +1 -0
  237. homeassistant/components/esphome/translations/zh-Hans.json +1 -1
  238. homeassistant/components/esphome/translations/zh-Hant.json +1 -1
  239. homeassistant/components/essent/translations/nl.json +0 -32
  240. homeassistant/components/essent/translations/zh-Hans.json +0 -38
  241. homeassistant/components/event/translations/pl.json +1 -2
  242. homeassistant/components/event/translations/sr-Latn.json +1 -16
  243. homeassistant/components/fan/strings.json +6 -4
  244. homeassistant/components/fan/translations/cs.json +6 -4
  245. homeassistant/components/fan/translations/de.json +4 -2
  246. homeassistant/components/fan/translations/en-GB.json +1 -34
  247. homeassistant/components/fan/translations/en.json +6 -4
  248. homeassistant/components/fan/translations/es.json +1 -34
  249. homeassistant/components/fan/translations/et.json +6 -4
  250. homeassistant/components/fan/translations/ga.json +1 -30
  251. homeassistant/components/fan/translations/lt.json +6 -4
  252. homeassistant/components/fan/translations/mk.json +0 -11
  253. homeassistant/components/fan/translations/nl.json +1 -6
  254. homeassistant/components/fan/translations/pt.json +8 -2
  255. homeassistant/components/fan/translations/sk.json +6 -4
  256. homeassistant/components/fan/translations/tr.json +1 -30
  257. homeassistant/components/fan/translations/zh-Hant.json +6 -4
  258. homeassistant/components/file/translations/tr.json +0 -26
  259. homeassistant/components/filter/translations/sr-Latn.json +11 -149
  260. homeassistant/components/firefly_iii/translations/de.json +2 -2
  261. homeassistant/components/firefly_iii/translations/tr.json +0 -87
  262. homeassistant/components/foscam/translations/tr.json +1 -45
  263. homeassistant/components/fritz/translations/tr.json +0 -24
  264. homeassistant/components/fronius/manifest.json +0 -1
  265. homeassistant/components/fronius/translations/sr-Latn.json +0 -3
  266. homeassistant/components/frontend/manifest.json +1 -1
  267. homeassistant/components/frontend/storage.py +6 -16
  268. homeassistant/components/frontend/translations/de.json +2 -2
  269. homeassistant/components/frontend/translations/el.json +0 -8
  270. homeassistant/components/frontend/translations/es.json +0 -8
  271. homeassistant/components/frontend/translations/ga.json +0 -8
  272. homeassistant/components/frontend/translations/ru.json +0 -8
  273. homeassistant/components/frontend/translations/sr-Latn.json +0 -8
  274. homeassistant/components/frontend/translations/tr.json +0 -8
  275. homeassistant/components/frontend/translations/zh-Hans.json +0 -3
  276. homeassistant/components/fully_kiosk/translations/tr.json +0 -15
  277. homeassistant/components/fyta/translations/sr-Latn.json +0 -6
  278. homeassistant/components/generic/translations/sr-Latn.json +0 -42
  279. homeassistant/components/generic_hygrostat/translations/sr-Latn.json +4 -36
  280. homeassistant/components/generic_thermostat/translations/sr-Latn.json +6 -46
  281. homeassistant/components/geocaching/translations/tr.json +1 -2
  282. homeassistant/components/gios/translations/sr-Latn.json +0 -10
  283. homeassistant/components/go2rtc/__init__.py +2 -6
  284. homeassistant/components/go2rtc/const.py +1 -0
  285. homeassistant/components/go2rtc/server.py +6 -16
  286. homeassistant/components/google/manifest.json +0 -1
  287. homeassistant/components/google_air_quality/manifest.json +1 -1
  288. homeassistant/components/google_air_quality/strings.json +6 -8
  289. homeassistant/components/google_air_quality/translations/bg.json +7 -0
  290. homeassistant/components/google_air_quality/translations/cs.json +6 -8
  291. homeassistant/components/google_air_quality/translations/de.json +6 -8
  292. homeassistant/components/google_air_quality/translations/en.json +6 -8
  293. homeassistant/components/google_air_quality/translations/et.json +12 -50
  294. homeassistant/components/google_air_quality/translations/lt.json +13 -1
  295. homeassistant/components/google_air_quality/translations/nl.json +6 -38
  296. homeassistant/components/google_air_quality/translations/pt.json +13 -1
  297. homeassistant/components/google_air_quality/translations/sk.json +13 -1
  298. homeassistant/components/google_air_quality/translations/zh-Hans.json +11 -81
  299. homeassistant/components/google_air_quality/translations/zh-Hant.json +13 -1
  300. homeassistant/components/google_assistant/translations/sr-Latn.json +1 -1
  301. homeassistant/components/google_assistant_sdk/translations/es.json +0 -3
  302. homeassistant/components/google_assistant_sdk/translations/tr.json +0 -7
  303. homeassistant/components/google_generative_ai_conversation/translations/tr.json +0 -6
  304. homeassistant/components/google_sheets/translations/es.json +0 -4
  305. homeassistant/components/google_sheets/translations/tr.json +0 -22
  306. homeassistant/components/google_translate/manifest.json +0 -1
  307. homeassistant/components/google_weather/translations/es.json +0 -66
  308. homeassistant/components/google_weather/translations/ga.json +0 -37
  309. homeassistant/components/gpsd/translations/sr-Latn.json +0 -3
  310. homeassistant/components/group/notify.py +5 -28
  311. homeassistant/components/group/translations/sr-Latn.json +12 -154
  312. homeassistant/components/group/translations/tr.json +1 -19
  313. homeassistant/components/growatt_server/translations/tr.json +0 -87
  314. homeassistant/components/habitica/translations/tr.json +0 -76
  315. homeassistant/components/hassio/const.py +0 -1
  316. homeassistant/components/hassio/strings.json +1 -1
  317. homeassistant/components/hassio/translations/cs.json +1 -1
  318. homeassistant/components/hassio/translations/de.json +1 -1
  319. homeassistant/components/hassio/translations/el.json +1 -0
  320. homeassistant/components/hassio/translations/en-GB.json +1 -1
  321. homeassistant/components/hassio/translations/en.json +1 -1
  322. homeassistant/components/hassio/translations/es.json +1 -1
  323. homeassistant/components/hassio/translations/et.json +1 -1
  324. homeassistant/components/hassio/translations/fr.json +1 -0
  325. homeassistant/components/hassio/translations/fy.json +3 -0
  326. homeassistant/components/hassio/translations/ga.json +1 -0
  327. homeassistant/components/hassio/translations/he.json +1 -0
  328. homeassistant/components/hassio/translations/id.json +1 -0
  329. homeassistant/components/hassio/translations/lt.json +1 -1
  330. homeassistant/components/hassio/translations/mk.json +1 -0
  331. homeassistant/components/hassio/translations/nl.json +1 -0
  332. homeassistant/components/hassio/translations/pt.json +1 -0
  333. homeassistant/components/hassio/translations/ru.json +1 -0
  334. homeassistant/components/hassio/translations/sk.json +1 -1
  335. homeassistant/components/hassio/translations/sr-Latn.json +0 -5
  336. homeassistant/components/hassio/translations/sv.json +1 -0
  337. homeassistant/components/hassio/translations/tr.json +0 -38
  338. homeassistant/components/hassio/translations/zh-Hans.json +1 -0
  339. homeassistant/components/hassio/translations/zh-Hant.json +1 -1
  340. homeassistant/components/history_stats/translations/sr-Latn.json +3 -85
  341. homeassistant/components/holiday/translations/pl.json +0 -7
  342. homeassistant/components/home_connect/manifest.json +0 -1
  343. homeassistant/components/home_connect/translations/de.json +2 -2
  344. homeassistant/components/home_connect/translations/es.json +0 -46
  345. homeassistant/components/home_connect/translations/ga.json +0 -46
  346. homeassistant/components/home_connect/translations/tr.json +0 -32
  347. homeassistant/components/homeassistant_connect_zbt2/config_flow.py +17 -0
  348. homeassistant/components/homeassistant_connect_zbt2/const.py +58 -0
  349. homeassistant/components/homeassistant_connect_zbt2/translations/es.json +0 -8
  350. homeassistant/components/homeassistant_connect_zbt2/translations/ga.json +0 -8
  351. homeassistant/components/homeassistant_connect_zbt2/translations/tr.json +0 -145
  352. homeassistant/components/homeassistant_hardware/firmware_config_flow.py +73 -81
  353. homeassistant/components/homeassistant_hardware/translations/es.json +0 -4
  354. homeassistant/components/homeassistant_hardware/translations/ga.json +0 -4
  355. homeassistant/components/homeassistant_hardware/translations/tr.json +1 -44
  356. homeassistant/components/homeassistant_hardware/update.py +10 -13
  357. homeassistant/components/homeassistant_hardware/util.py +53 -59
  358. homeassistant/components/homeassistant_sky_connect/translations/es.json +0 -8
  359. homeassistant/components/homeassistant_sky_connect/translations/ga.json +0 -8
  360. homeassistant/components/homeassistant_sky_connect/translations/tr.json +0 -71
  361. homeassistant/components/homeassistant_yellow/translations/es.json +0 -4
  362. homeassistant/components/homeassistant_yellow/translations/ga.json +0 -4
  363. homeassistant/components/homeassistant_yellow/translations/tr.json +0 -35
  364. homeassistant/components/homekit/translations/tr.json +0 -12
  365. homeassistant/components/homekit_controller/manifest.json +0 -1
  366. homeassistant/components/homewizard/manifest.json +0 -1
  367. homeassistant/components/hue/translations/mk.json +1 -3
  368. homeassistant/components/hue/translations/tr.json +0 -1
  369. homeassistant/components/hue_ble/strings.json +1 -1
  370. homeassistant/components/hue_ble/translations/en.json +1 -1
  371. homeassistant/components/hue_ble/translations/lt.json +1 -1
  372. homeassistant/components/hue_ble/translations/nl.json +0 -3
  373. homeassistant/components/hue_ble/translations/pt.json +2 -1
  374. homeassistant/components/hue_ble/translations/sk.json +1 -1
  375. homeassistant/components/hue_ble/translations/zh-Hans.json +1 -11
  376. homeassistant/components/humidifier/translations/mk.json +0 -6
  377. homeassistant/components/husqvarna_automower/translations/tr.json +0 -88
  378. homeassistant/components/huum/translations/sr-Latn.json +0 -5
  379. homeassistant/components/ibeacon/manifest.json +0 -1
  380. homeassistant/components/icloud/translations/tr.json +0 -3
  381. homeassistant/components/image/translations/sr-Latn.json +1 -2
  382. homeassistant/components/imap/translations/tr.json +0 -21
  383. homeassistant/components/imeon_inverter/translations/en-GB.json +0 -21
  384. homeassistant/components/incomfort/translations/tr.json +0 -3
  385. homeassistant/components/input_boolean/translations/mk.json +2 -4
  386. homeassistant/components/input_number/translations/sr-Latn.json +0 -17
  387. homeassistant/components/integration/translations/sr-Latn.json +2 -54
  388. homeassistant/components/iometer/manifest.json +1 -1
  389. homeassistant/components/iometer/translations/tr.json +1 -3
  390. homeassistant/components/iron_os/translations/en-GB.json +1 -5
  391. homeassistant/components/iron_os/translations/es.json +1 -5
  392. homeassistant/components/jewish_calendar/translations/tr.json +1 -9
  393. homeassistant/components/kitchen_sink/translations/en-GB.json +0 -2
  394. homeassistant/components/kitchen_sink/translations/es.json +0 -20
  395. homeassistant/components/kitchen_sink/translations/et.json +1 -5
  396. homeassistant/components/kitchen_sink/translations/ga.json +0 -4
  397. homeassistant/components/kitchen_sink/translations/it.json +0 -12
  398. homeassistant/components/kitchen_sink/translations/nl.json +0 -4
  399. homeassistant/components/kitchen_sink/translations/ru.json +0 -8
  400. homeassistant/components/kitchen_sink/translations/sv.json +0 -3
  401. homeassistant/components/kitchen_sink/translations/tr.json +0 -4
  402. homeassistant/components/knx/translations/el.json +0 -43
  403. homeassistant/components/knx/translations/es.json +0 -3
  404. homeassistant/components/knx/translations/et.json +0 -3
  405. homeassistant/components/knx/translations/tr.json +0 -318
  406. homeassistant/components/knx/translations/zh-Hans.json +0 -3
  407. homeassistant/components/konnected/manifest.json +0 -1
  408. homeassistant/components/konnected/translations/tr.json +0 -6
  409. homeassistant/components/labs/__init__.py +1 -2
  410. homeassistant/components/labs/const.py +2 -0
  411. homeassistant/components/labs/translations/lt.json +1 -1
  412. homeassistant/components/labs/websocket_api.py +1 -2
  413. homeassistant/components/lawn_mower/strings.json +12 -8
  414. homeassistant/components/lawn_mower/translations/cs.json +11 -7
  415. homeassistant/components/lawn_mower/translations/de.json +11 -7
  416. homeassistant/components/lawn_mower/translations/en-GB.json +1 -56
  417. homeassistant/components/lawn_mower/translations/en.json +12 -8
  418. homeassistant/components/lawn_mower/translations/es.json +1 -56
  419. homeassistant/components/lawn_mower/translations/et.json +2 -46
  420. homeassistant/components/lawn_mower/translations/ga.json +1 -48
  421. homeassistant/components/lawn_mower/translations/lt.json +12 -8
  422. homeassistant/components/lawn_mower/translations/pt.json +16 -4
  423. homeassistant/components/lawn_mower/translations/sk.json +12 -8
  424. homeassistant/components/lawn_mower/translations/tr.json +1 -48
  425. homeassistant/components/lawn_mower/translations/zh-Hant.json +12 -8
  426. homeassistant/components/letpot/manifest.json +1 -1
  427. homeassistant/components/letpot/translations/tr.json +0 -8
  428. homeassistant/components/lg_thinq/manifest.json +1 -1
  429. homeassistant/components/lg_thinq/translations/sr-Latn.json +0 -8
  430. homeassistant/components/lg_thinq/translations/tr.json +0 -20
  431. homeassistant/components/libre_hardware_monitor/coordinator.py +18 -26
  432. homeassistant/components/lifx/translations/tr.json +0 -3
  433. homeassistant/components/light/strings.json +8 -4
  434. homeassistant/components/light/translations/bg.json +12 -0
  435. homeassistant/components/light/translations/cs.json +8 -4
  436. homeassistant/components/light/translations/de.json +6 -2
  437. homeassistant/components/light/translations/el.json +0 -6
  438. homeassistant/components/light/translations/en-GB.json +2 -69
  439. homeassistant/components/light/translations/en.json +8 -4
  440. homeassistant/components/light/translations/es.json +2 -68
  441. homeassistant/components/light/translations/et.json +8 -34
  442. homeassistant/components/light/translations/ga.json +2 -65
  443. homeassistant/components/light/translations/lt.json +8 -4
  444. homeassistant/components/light/translations/mk.json +3 -10
  445. homeassistant/components/light/translations/nl.json +1 -6
  446. homeassistant/components/light/translations/pt.json +10 -2
  447. homeassistant/components/light/translations/ru.json +3 -67
  448. homeassistant/components/light/translations/sk.json +8 -4
  449. homeassistant/components/light/translations/sr-Latn.json +4 -217
  450. homeassistant/components/light/translations/tr.json +2 -65
  451. homeassistant/components/light/translations/zh-Hans.json +10 -2
  452. homeassistant/components/light/translations/zh-Hant.json +8 -4
  453. homeassistant/components/litterrobot/translations/tr.json +0 -6
  454. homeassistant/components/logger/helpers.py +0 -10
  455. homeassistant/components/logger/websocket_api.py +1 -12
  456. homeassistant/components/lovelace/translations/es.json +0 -5
  457. homeassistant/components/lovelace/translations/ga.json +0 -5
  458. homeassistant/components/mastodon/translations/es.json +0 -7
  459. homeassistant/components/mastodon/translations/ga.json +0 -7
  460. homeassistant/components/mastodon/translations/tr.json +0 -4
  461. homeassistant/components/matrix/translations/tr.json +0 -42
  462. homeassistant/components/matter/manifest.json +0 -1
  463. homeassistant/components/matter/translations/es.json +0 -13
  464. homeassistant/components/matter/translations/ga.json +0 -10
  465. homeassistant/components/matter/translations/sr-Latn.json +0 -3
  466. homeassistant/components/matter/translations/tr.json +0 -105
  467. homeassistant/components/mcp/translations/tr.json +1 -20
  468. homeassistant/components/mealie/translations/tr.json +0 -11
  469. homeassistant/components/media_extractor/manifest.json +1 -1
  470. homeassistant/components/media_player/strings.json +3 -2
  471. homeassistant/components/media_player/translations/cs.json +3 -2
  472. homeassistant/components/media_player/translations/de.json +2 -1
  473. homeassistant/components/media_player/translations/en-GB.json +1 -24
  474. homeassistant/components/media_player/translations/en.json +3 -2
  475. homeassistant/components/media_player/translations/es.json +1 -24
  476. homeassistant/components/media_player/translations/et.json +1 -8
  477. homeassistant/components/media_player/translations/ga.json +1 -22
  478. homeassistant/components/media_player/translations/lt.json +3 -2
  479. homeassistant/components/media_player/translations/mk.json +2 -4
  480. homeassistant/components/media_player/translations/pt.json +4 -1
  481. homeassistant/components/media_player/translations/sk.json +3 -2
  482. homeassistant/components/media_player/translations/tr.json +1 -22
  483. homeassistant/components/media_player/translations/zh-Hant.json +3 -2
  484. homeassistant/components/met/manifest.json +0 -1
  485. homeassistant/components/meteo_france/const.py +0 -1
  486. homeassistant/components/miele/const.py +7 -9
  487. homeassistant/components/miele/strings.json +0 -1
  488. homeassistant/components/miele/translations/cs.json +0 -1
  489. homeassistant/components/miele/translations/de.json +0 -1
  490. homeassistant/components/miele/translations/en-GB.json +0 -1
  491. homeassistant/components/miele/translations/en.json +0 -1
  492. homeassistant/components/miele/translations/es.json +0 -16
  493. homeassistant/components/miele/translations/et.json +0 -1
  494. homeassistant/components/miele/translations/ga.json +0 -14
  495. homeassistant/components/miele/translations/it.json +0 -1
  496. homeassistant/components/miele/translations/lt.json +0 -1
  497. homeassistant/components/miele/translations/sk.json +0 -1
  498. homeassistant/components/miele/translations/sr-Latn.json +0 -10
  499. homeassistant/components/miele/translations/tr.json +1 -20
  500. homeassistant/components/miele/translations/zh-Hant.json +0 -1
  501. homeassistant/components/min_max/translations/sr-Latn.json +2 -44
  502. homeassistant/components/mold_indicator/translations/sr-Latn.json +3 -41
  503. homeassistant/components/motion_blinds/manifest.json +0 -1
  504. homeassistant/components/mqtt/entity.py +0 -1
  505. homeassistant/components/mqtt/strings.json +5 -4
  506. homeassistant/components/mqtt/translations/bg.json +5 -0
  507. homeassistant/components/mqtt/translations/cs.json +5 -4
  508. homeassistant/components/mqtt/translations/de.json +8 -7
  509. homeassistant/components/mqtt/translations/en-GB.json +5 -4
  510. homeassistant/components/mqtt/translations/en.json +5 -4
  511. homeassistant/components/mqtt/translations/es.json +8 -91
  512. homeassistant/components/mqtt/translations/et.json +5 -4
  513. homeassistant/components/mqtt/translations/fr.json +4 -1
  514. homeassistant/components/mqtt/translations/ga.json +9 -65
  515. homeassistant/components/mqtt/translations/he.json +6 -1
  516. homeassistant/components/mqtt/translations/hu.json +2 -0
  517. homeassistant/components/mqtt/translations/it.json +7 -2
  518. homeassistant/components/mqtt/translations/lt.json +5 -4
  519. homeassistant/components/mqtt/translations/mk.json +0 -6
  520. homeassistant/components/mqtt/translations/nl.json +6 -1
  521. homeassistant/components/mqtt/translations/pt.json +6 -3
  522. homeassistant/components/mqtt/translations/ru.json +6 -6
  523. homeassistant/components/mqtt/translations/sk.json +5 -4
  524. homeassistant/components/mqtt/translations/sr-Latn.json +22 -148
  525. homeassistant/components/mqtt/translations/sv.json +2 -1
  526. homeassistant/components/mqtt/translations/tr.json +5 -255
  527. homeassistant/components/mqtt/translations/zh-Hans.json +6 -3
  528. homeassistant/components/mqtt/translations/zh-Hant.json +5 -4
  529. homeassistant/components/music_assistant/__init__.py +1 -2
  530. homeassistant/components/music_assistant/config_flow.py +5 -23
  531. homeassistant/components/music_assistant/manifest.json +0 -1
  532. homeassistant/components/music_assistant/translations/el.json +1 -3
  533. homeassistant/components/music_assistant/translations/en-GB.json +1 -23
  534. homeassistant/components/music_assistant/translations/es.json +1 -25
  535. homeassistant/components/music_assistant/translations/et.json +0 -1
  536. homeassistant/components/music_assistant/translations/ga.json +1 -24
  537. homeassistant/components/music_assistant/translations/it.json +1 -26
  538. homeassistant/components/music_assistant/translations/nl.json +1 -3
  539. homeassistant/components/music_assistant/translations/ru.json +1 -23
  540. homeassistant/components/music_assistant/translations/sv.json +1 -3
  541. homeassistant/components/music_assistant/translations/tr.json +1 -24
  542. homeassistant/components/music_assistant/translations/zh-Hans.json +0 -16
  543. homeassistant/components/nasweb/translations/tr.json +0 -7
  544. homeassistant/components/neato/translations/es.json +0 -5
  545. homeassistant/components/neato/translations/ga.json +0 -5
  546. homeassistant/components/neato/translations/tr.json +0 -5
  547. homeassistant/components/nederlandse_spoorwegen/translations/es.json +0 -10
  548. homeassistant/components/nederlandse_spoorwegen/translations/tr.json +0 -25
  549. homeassistant/components/nest/manifest.json +1 -1
  550. homeassistant/components/nest/translations/es.json +0 -12
  551. homeassistant/components/nest/translations/tr.json +0 -12
  552. homeassistant/components/netgear/translations/sr-Latn.json +0 -3
  553. homeassistant/components/nextdns/translations/tr.json +1 -14
  554. homeassistant/components/nightscout/translations/tr.json +0 -4
  555. homeassistant/components/niko_home_control/translations/el.json +0 -18
  556. homeassistant/components/niko_home_control/translations/es.json +1 -3
  557. homeassistant/components/niko_home_control/translations/tr.json +1 -10
  558. homeassistant/components/nina/translations/el.json +0 -6
  559. homeassistant/components/nina/translations/en-GB.json +0 -8
  560. homeassistant/components/nina/translations/es.json +0 -8
  561. homeassistant/components/nina/translations/ga.json +0 -8
  562. homeassistant/components/nina/translations/tr.json +0 -54
  563. homeassistant/components/nina/translations/zh-Hans.json +0 -2
  564. homeassistant/components/nordpool/manifest.json +1 -1
  565. homeassistant/components/ntfy/translations/tr.json +0 -78
  566. homeassistant/components/nuki/manifest.json +0 -1
  567. homeassistant/components/number/translations/sr-Latn.json +0 -181
  568. homeassistant/components/number/translations/tr.json +0 -6
  569. homeassistant/components/octoprint/translations/tr.json +0 -10
  570. homeassistant/components/onboarding/const.py +1 -16
  571. homeassistant/components/onboarding/views.py +2 -2
  572. homeassistant/components/onedrive/translations/es.json +0 -3
  573. homeassistant/components/onewire/translations/tr.json +0 -10
  574. homeassistant/components/openai_conversation/translations/tr.json +1 -6
  575. homeassistant/components/opentherm_gw/services.py +2 -17
  576. homeassistant/components/opentherm_gw/strings.json +3 -3
  577. homeassistant/components/opentherm_gw/translations/cs.json +3 -3
  578. homeassistant/components/opentherm_gw/translations/de.json +3 -3
  579. homeassistant/components/opentherm_gw/translations/el.json +3 -3
  580. homeassistant/components/opentherm_gw/translations/en-GB.json +3 -3
  581. homeassistant/components/opentherm_gw/translations/en.json +3 -3
  582. homeassistant/components/opentherm_gw/translations/es.json +3 -3
  583. homeassistant/components/opentherm_gw/translations/et.json +3 -3
  584. homeassistant/components/opentherm_gw/translations/ga.json +3 -0
  585. homeassistant/components/opentherm_gw/translations/hu.json +3 -0
  586. homeassistant/components/opentherm_gw/translations/it.json +2 -0
  587. homeassistant/components/opentherm_gw/translations/ja.json +3 -0
  588. homeassistant/components/opentherm_gw/translations/lt.json +3 -3
  589. homeassistant/components/opentherm_gw/translations/nl.json +2 -0
  590. homeassistant/components/opentherm_gw/translations/pt.json +3 -3
  591. homeassistant/components/opentherm_gw/translations/ru.json +3 -3
  592. homeassistant/components/opentherm_gw/translations/sk.json +3 -3
  593. homeassistant/components/opentherm_gw/translations/sv.json +3 -0
  594. homeassistant/components/opentherm_gw/translations/tr.json +3 -0
  595. homeassistant/components/opentherm_gw/translations/zh-Hans.json +3 -3
  596. homeassistant/components/opentherm_gw/translations/zh-Hant.json +3 -3
  597. homeassistant/components/openweathermap/translations/tr.json +0 -49
  598. homeassistant/components/opower/translations/tr.json +1 -33
  599. homeassistant/components/oralb/manifest.json +0 -1
  600. homeassistant/components/oralb/translations/tr.json +2 -29
  601. homeassistant/components/ping/helpers.py +1 -1
  602. homeassistant/components/ping/manifest.json +0 -1
  603. homeassistant/components/playstation_network/coordinator.py +7 -14
  604. homeassistant/components/playstation_network/translations/tr.json +0 -56
  605. homeassistant/components/plugwise/translations/en-GB.json +1 -1
  606. homeassistant/components/plugwise/translations/es.json +0 -2
  607. homeassistant/components/plugwise/translations/sr-Latn.json +0 -12
  608. homeassistant/components/plugwise/translations/tr.json +1 -11
  609. homeassistant/components/plum_lightpad/translations/tr.json +1 -8
  610. homeassistant/components/point/translations/es.json +0 -5
  611. homeassistant/components/pooldose/translations/en-GB.json +0 -11
  612. homeassistant/components/pooldose/translations/es.json +0 -68
  613. homeassistant/components/pooldose/translations/ga.json +0 -11
  614. homeassistant/components/pooldose/translations/it.json +0 -11
  615. homeassistant/components/pooldose/translations/tr.json +1 -84
  616. homeassistant/components/pooldose/translations/zh-Hans.json +0 -6
  617. homeassistant/components/portainer/translations/tr.json +0 -82
  618. homeassistant/components/probe_plus/translations/tr.json +0 -5
  619. homeassistant/components/ps4/translations/tr.json +0 -6
  620. homeassistant/components/qbittorrent/translations/tr.json +0 -4
  621. homeassistant/components/qbus/translations/tr.json +0 -10
  622. homeassistant/components/random/translations/es.json +0 -1
  623. homeassistant/components/random/translations/sr-Latn.json +6 -119
  624. homeassistant/components/random/translations/tr.json +0 -2
  625. homeassistant/components/renault/translations/tr.json +0 -12
  626. homeassistant/components/reolink/manifest.json +1 -2
  627. homeassistant/components/reolink/translations/pl.json +1 -10
  628. homeassistant/components/reolink/translations/tr.json +1 -67
  629. homeassistant/components/rest/manifest.json +0 -1
  630. homeassistant/components/ridwell/translations/tr.json +0 -22
  631. homeassistant/components/ring/manifest.json +0 -1
  632. homeassistant/components/roborock/manifest.json +1 -2
  633. homeassistant/components/roborock/roborock_storage.py +10 -29
  634. homeassistant/components/roborock/translations/tr.json +1 -9
  635. homeassistant/components/roomba/translations/tr.json +0 -6
  636. homeassistant/components/satel_integra/translations/sr-Latn.json +1 -2
  637. homeassistant/components/saunum/translations/el.json +1 -7
  638. homeassistant/components/saunum/translations/en-GB.json +1 -11
  639. homeassistant/components/saunum/translations/es.json +1 -38
  640. homeassistant/components/saunum/translations/et.json +1 -11
  641. homeassistant/components/saunum/translations/ga.json +1 -38
  642. homeassistant/components/saunum/translations/mk.json +0 -5
  643. homeassistant/components/saunum/translations/tr.json +1 -11
  644. homeassistant/components/schedule/translations/sr-Latn.json +1 -18
  645. homeassistant/components/scrape/translations/es.json +0 -1
  646. homeassistant/components/scrape/translations/sr-Latn.json +2 -63
  647. homeassistant/components/scrape/translations/tr.json +0 -4
  648. homeassistant/components/sensibo/translations/sr-Latn.json +0 -19
  649. homeassistant/components/sensor/translations/sr-Latn.json +5 -141
  650. homeassistant/components/sensor/translations/tr.json +0 -10
  651. homeassistant/components/senz/manifest.json +0 -1
  652. homeassistant/components/senz/translations/es.json +1 -17
  653. homeassistant/components/sfr_box/translations/tr.json +0 -4
  654. homeassistant/components/shelly/manifest.json +1 -1
  655. homeassistant/components/shelly/sensor.py +2 -0
  656. homeassistant/components/shelly/strings.json +0 -8
  657. homeassistant/components/shelly/switch.py +1 -0
  658. homeassistant/components/shelly/translations/bg.json +0 -5
  659. homeassistant/components/shelly/translations/cs.json +0 -8
  660. homeassistant/components/shelly/translations/de.json +0 -8
  661. homeassistant/components/shelly/translations/en-GB.json +0 -8
  662. homeassistant/components/shelly/translations/en.json +0 -8
  663. homeassistant/components/shelly/translations/es.json +2 -192
  664. homeassistant/components/shelly/translations/et.json +1 -10
  665. homeassistant/components/shelly/translations/fr.json +0 -10
  666. homeassistant/components/shelly/translations/ga.json +0 -46
  667. homeassistant/components/shelly/translations/it.json +2 -13
  668. homeassistant/components/shelly/translations/lt.json +0 -8
  669. homeassistant/components/shelly/translations/mk.json +0 -3
  670. homeassistant/components/shelly/translations/nl.json +0 -7
  671. homeassistant/components/shelly/translations/pl.json +0 -8
  672. homeassistant/components/shelly/translations/pt.json +0 -8
  673. homeassistant/components/shelly/translations/ru.json +0 -5
  674. homeassistant/components/shelly/translations/sk.json +0 -8
  675. homeassistant/components/shelly/translations/tr.json +5 -171
  676. homeassistant/components/shelly/translations/zh-Hans.json +0 -8
  677. homeassistant/components/shelly/translations/zh-Hant.json +0 -8
  678. homeassistant/components/shelly/valve.py +1 -1
  679. homeassistant/components/siren/translations/mk.json +2 -4
  680. homeassistant/components/smarla/translations/tr.json +0 -15
  681. homeassistant/components/smartthings/manifest.json +0 -1
  682. homeassistant/components/smartthings/translations/es.json +0 -74
  683. homeassistant/components/smartthings/translations/nl.json +0 -13
  684. homeassistant/components/smartthings/translations/tr.json +0 -20
  685. homeassistant/components/smhi/translations/tr.json +0 -19
  686. homeassistant/components/snoo/translations/tr.json +0 -8
  687. homeassistant/components/solaredge/translations/tr.json +3 -64
  688. homeassistant/components/sonos/manifest.json +0 -1
  689. homeassistant/components/speedtestdotnet/manifest.json +0 -1
  690. homeassistant/components/spotify/translations/es.json +0 -5
  691. homeassistant/components/sql/translations/es.json +0 -1
  692. homeassistant/components/sql/translations/sr-Latn.json +2 -61
  693. homeassistant/components/sql/translations/tr.json +0 -83
  694. homeassistant/components/squeezebox/translations/mk.json +0 -5
  695. homeassistant/components/squeezebox/translations/tr.json +0 -63
  696. homeassistant/components/starline/translations/sr-Latn.json +0 -7
  697. homeassistant/components/statistics/translations/sr-Latn.json +2 -118
  698. homeassistant/components/switch/translations/mk.json +1 -5
  699. homeassistant/components/switch/translations/sr-Latn.json +1 -2
  700. homeassistant/components/switch_as_x/translations/sr-Latn.json +3 -27
  701. homeassistant/components/switchbot/manifest.json +0 -1
  702. homeassistant/components/switchbot/translations/el.json +1 -2
  703. homeassistant/components/switchbot/translations/tr.json +0 -34
  704. homeassistant/components/switchbot_cloud/translations/tr.json +0 -20
  705. homeassistant/components/synology_dsm/translations/sr-Latn.json +0 -3
  706. homeassistant/components/system_bridge/translations/tr.json +0 -3
  707. homeassistant/components/systemmonitor/translations/tr.json +0 -6
  708. homeassistant/components/tautulli/translations/de.json +1 -1
  709. homeassistant/components/tedee/manifest.json +0 -1
  710. homeassistant/components/telegram/translations/de.json +1 -1
  711. homeassistant/components/telegram/translations/tr.json +0 -6
  712. homeassistant/components/telegram_bot/translations/tr.json +4 -203
  713. homeassistant/components/template/__init__.py +0 -11
  714. homeassistant/components/template/helpers.py +0 -2
  715. homeassistant/components/template/translations/de.json +4 -4
  716. homeassistant/components/template/translations/el.json +0 -4
  717. homeassistant/components/template/translations/es.json +0 -5
  718. homeassistant/components/template/translations/ga.json +0 -4
  719. homeassistant/components/template/translations/it.json +0 -4
  720. homeassistant/components/template/translations/pl.json +0 -37
  721. homeassistant/components/template/translations/ru.json +0 -4
  722. homeassistant/components/template/translations/sr-Latn.json +72 -933
  723. homeassistant/components/template/translations/tr.json +2 -172
  724. homeassistant/components/template/translations/zh-Hans.json +0 -4
  725. homeassistant/components/tesla_fleet/manifest.json +0 -1
  726. homeassistant/components/tesla_fleet/translations/es.json +0 -5
  727. homeassistant/components/tesla_fleet/translations/sr-Latn.json +0 -5
  728. homeassistant/components/tesla_wall_connector/translations/es.json +0 -3
  729. homeassistant/components/tesla_wall_connector/translations/ga.json +0 -3
  730. homeassistant/components/teslemetry/manifest.json +0 -1
  731. homeassistant/components/teslemetry/translations/sr-Latn.json +0 -5
  732. homeassistant/components/teslemetry/translations/tr.json +1 -77
  733. homeassistant/components/tessie/manifest.json +0 -1
  734. homeassistant/components/tessie/translations/sr-Latn.json +0 -5
  735. homeassistant/components/tessie/translations/tr.json +0 -3
  736. homeassistant/components/text/strings.json +3 -2
  737. homeassistant/components/text/translations/bg.json +8 -1
  738. homeassistant/components/text/translations/cs.json +3 -2
  739. homeassistant/components/text/translations/de.json +3 -2
  740. homeassistant/components/text/translations/en-GB.json +1 -7
  741. homeassistant/components/text/translations/en.json +3 -2
  742. homeassistant/components/text/translations/es.json +1 -7
  743. homeassistant/components/text/translations/et.json +1 -7
  744. homeassistant/components/text/translations/lt.json +3 -2
  745. homeassistant/components/text/translations/pt.json +8 -1
  746. homeassistant/components/text/translations/sk.json +3 -2
  747. homeassistant/components/text/translations/sr-Latn.json +2 -4
  748. homeassistant/components/text/translations/zh-Hant.json +3 -2
  749. homeassistant/components/tod/translations/sr-Latn.json +1 -16
  750. homeassistant/components/tolo/translations/tr.json +1 -2
  751. homeassistant/components/tomorrowio/translations/sr-Latn.json +0 -24
  752. homeassistant/components/tplink/manifest.json +0 -1
  753. homeassistant/components/traccar_server/translations/tr.json +0 -12
  754. homeassistant/components/transmission/translations/tr.json +0 -24
  755. homeassistant/components/trend/translations/sr-Latn.json +0 -21
  756. homeassistant/components/tuya/__init__.py +4 -12
  757. homeassistant/components/tuya/binary_sensor.py +2 -2
  758. homeassistant/components/tuya/humidifier.py +3 -3
  759. homeassistant/components/tuya/models.py +20 -18
  760. homeassistant/components/tuya/translations/es.json +0 -32
  761. homeassistant/components/tuya/translations/ga.json +0 -6
  762. homeassistant/components/tuya/translations/sr-Latn.json +0 -45
  763. homeassistant/components/tuya/translations/tr.json +0 -72
  764. homeassistant/components/tuya/util.py +9 -11
  765. homeassistant/components/twitch/translations/es.json +0 -5
  766. homeassistant/components/ukraine_alarm/translations/tr.json +1 -2
  767. homeassistant/components/unifi/light.py +29 -62
  768. homeassistant/components/unifi/translations/es.json +0 -3
  769. homeassistant/components/unifi/translations/tr.json +0 -5
  770. homeassistant/components/unifiprotect/camera.py +1 -5
  771. homeassistant/components/unifiprotect/manifest.json +1 -1
  772. homeassistant/components/unifiprotect/translations/bg.json +7 -0
  773. homeassistant/components/unifiprotect/translations/cs.json +1 -1
  774. homeassistant/components/unifiprotect/translations/de.json +1 -1
  775. homeassistant/components/unifiprotect/translations/el.json +5 -1
  776. homeassistant/components/unifiprotect/translations/en-GB.json +1 -11
  777. homeassistant/components/unifiprotect/translations/en.json +1 -1
  778. homeassistant/components/unifiprotect/translations/es.json +1 -11
  779. homeassistant/components/unifiprotect/translations/fi.json +7 -0
  780. homeassistant/components/unifiprotect/translations/ga.json +10 -10
  781. homeassistant/components/unifiprotect/translations/lt.json +1 -1
  782. homeassistant/components/unifiprotect/translations/nl.json +3 -0
  783. homeassistant/components/unifiprotect/translations/pt.json +10 -0
  784. homeassistant/components/unifiprotect/translations/sk.json +1 -1
  785. homeassistant/components/unifiprotect/translations/sr-Latn.json +0 -11
  786. homeassistant/components/unifiprotect/translations/sv.json +0 -3
  787. homeassistant/components/unifiprotect/translations/tr.json +0 -10
  788. homeassistant/components/unifiprotect/translations/zh-Hans.json +3 -2
  789. homeassistant/components/unifiprotect/translations/zh-Hant.json +1 -1
  790. homeassistant/components/update/translations/sr-Latn.json +1 -51
  791. homeassistant/components/utility_meter/translations/sr-Latn.json +2 -63
  792. homeassistant/components/vacuum/strings.json +12 -8
  793. homeassistant/components/vacuum/translations/cs.json +12 -8
  794. homeassistant/components/vacuum/translations/de.json +11 -7
  795. homeassistant/components/vacuum/translations/en-GB.json +1 -56
  796. homeassistant/components/vacuum/translations/en.json +12 -8
  797. homeassistant/components/vacuum/translations/es.json +1 -56
  798. homeassistant/components/vacuum/translations/et.json +1 -51
  799. homeassistant/components/vacuum/translations/ga.json +1 -48
  800. homeassistant/components/vacuum/translations/lt.json +12 -8
  801. homeassistant/components/vacuum/translations/pt.json +16 -4
  802. homeassistant/components/vacuum/translations/ru.json +1 -48
  803. homeassistant/components/vacuum/translations/sk.json +12 -8
  804. homeassistant/components/vacuum/translations/sv.json +1 -13
  805. homeassistant/components/vacuum/translations/tr.json +1 -48
  806. homeassistant/components/vacuum/translations/zh-Hans.json +2 -6
  807. homeassistant/components/vacuum/translations/zh-Hant.json +12 -8
  808. homeassistant/components/vegehub/translations/tr.json +0 -5
  809. homeassistant/components/velux/translations/tr.json +0 -12
  810. homeassistant/components/vesync/manifest.json +1 -1
  811. homeassistant/components/vesync/translations/tr.json +0 -11
  812. homeassistant/components/vicare/translations/es.json +0 -54
  813. homeassistant/components/vicare/translations/sr-Latn.json +0 -10
  814. homeassistant/components/vicare/translations/tr.json +0 -21
  815. homeassistant/components/volvo/translations/es.json +0 -6
  816. homeassistant/components/volvo/translations/tr.json +0 -142
  817. homeassistant/components/volvooncall/translations/tr.json +1 -18
  818. homeassistant/components/waqi/translations/sr-Latn.json +0 -32
  819. homeassistant/components/waqi/translations/tr.json +0 -40
  820. homeassistant/components/water_heater/translations/sr-Latn.json +1 -2
  821. homeassistant/components/weatherflow/translations/tr.json +0 -8
  822. homeassistant/components/webostv/manifest.json +0 -1
  823. homeassistant/components/whirlpool/translations/tr.json +0 -81
  824. homeassistant/components/withings/translations/es.json +0 -5
  825. homeassistant/components/withings/translations/sr-Latn.json +0 -5
  826. homeassistant/components/wled/config_flow.py +1 -5
  827. homeassistant/components/wled/coordinator.py +0 -9
  828. homeassistant/components/wled/strings.json +2 -10
  829. homeassistant/components/wled/translations/cs.json +2 -15
  830. homeassistant/components/wled/translations/de.json +2 -10
  831. homeassistant/components/wled/translations/el.json +1 -20
  832. homeassistant/components/wled/translations/en-GB.json +2 -15
  833. homeassistant/components/wled/translations/en.json +2 -10
  834. homeassistant/components/wled/translations/es.json +2 -15
  835. homeassistant/components/wled/translations/et.json +2 -10
  836. homeassistant/components/wled/translations/ga.json +1 -6
  837. homeassistant/components/wled/translations/it.json +1 -6
  838. homeassistant/components/wled/translations/lt.json +2 -15
  839. homeassistant/components/wled/translations/nl.json +1 -2
  840. homeassistant/components/wled/translations/pl.json +1 -8
  841. homeassistant/components/wled/translations/pt.json +1 -6
  842. homeassistant/components/wled/translations/ru.json +2 -29
  843. homeassistant/components/wled/translations/sk.json +2 -10
  844. homeassistant/components/wled/translations/tr.json +1 -26
  845. homeassistant/components/wled/translations/zh-Hans.json +1 -6
  846. homeassistant/components/wled/translations/zh-Hant.json +2 -15
  847. homeassistant/components/wled/update.py +1 -1
  848. homeassistant/components/workday/translations/tr.json +0 -5
  849. homeassistant/components/xbox/translations/es.json +1 -16
  850. homeassistant/components/xbox/translations/ga.json +1 -10
  851. homeassistant/components/xbox/translations/tr.json +0 -111
  852. homeassistant/components/xiaomi_aqara/translations/sr-Latn.json +0 -6
  853. homeassistant/components/xiaomi_ble/manifest.json +0 -1
  854. homeassistant/components/yardian/translations/tr.json +0 -16
  855. homeassistant/components/yolink/translations/tr.json +0 -14
  856. homeassistant/components/youtube/manifest.json +1 -1
  857. homeassistant/components/youtube/translations/es.json +0 -5
  858. homeassistant/components/zha/config_flow.py +6 -2
  859. homeassistant/components/zha/manifest.json +0 -1
  860. homeassistant/components/zha/radio_manager.py +2 -2
  861. homeassistant/components/zha/translations/de.json +1 -1
  862. homeassistant/components/zha/translations/en-GB.json +0 -44
  863. homeassistant/components/zha/translations/es.json +0 -44
  864. homeassistant/components/zha/translations/ga.json +0 -44
  865. homeassistant/components/zha/translations/it.json +0 -44
  866. homeassistant/components/zha/translations/mk.json +1 -18
  867. homeassistant/components/zha/translations/nl.json +0 -8
  868. homeassistant/components/zha/translations/sr-Latn.json +0 -3
  869. homeassistant/components/zha/translations/tr.json +2 -213
  870. homeassistant/components/zha/translations/zh-Hans.json +0 -12
  871. homeassistant/components/zwave_js/translations/tr.json +0 -17
  872. homeassistant/const.py +1 -2
  873. homeassistant/generated/integrations.json +21 -21
  874. homeassistant/generated/labs.py +2 -2
  875. homeassistant/helpers/area_registry.py +1 -8
  876. homeassistant/helpers/condition.py +1 -16
  877. homeassistant/helpers/entity.py +1 -3
  878. homeassistant/helpers/floor_registry.py +1 -12
  879. homeassistant/helpers/trigger.py +1 -16
  880. homeassistant/package_constraints.txt +4 -4
  881. {homeassistant-2025.12.0.dist-info → homeassistant-2025.12.0b2.dist-info}/METADATA +2 -2
  882. {homeassistant-2025.12.0.dist-info → homeassistant-2025.12.0b2.dist-info}/RECORD +887 -972
  883. homeassistant/components/actron_air/translations/tr.json +0 -27
  884. homeassistant/components/airobot/translations/es.json +0 -44
  885. homeassistant/components/airobot/translations/ga.json +0 -40
  886. homeassistant/components/airobot/translations/it.json +0 -1
  887. homeassistant/components/airos/translations/tr.json +0 -71
  888. homeassistant/components/alert/translations/mk.json +0 -10
  889. homeassistant/components/anglian_water/translations/el.json +0 -20
  890. homeassistant/components/anglian_water/translations/en-GB.json +0 -55
  891. homeassistant/components/anglian_water/translations/es.json +0 -55
  892. homeassistant/components/anglian_water/translations/ga.json +0 -54
  893. homeassistant/components/anglian_water/translations/sv.json +0 -14
  894. homeassistant/components/anglian_water/translations/tr.json +0 -54
  895. homeassistant/components/automation/translations/mk.json +0 -10
  896. homeassistant/components/backblaze_b2/translations/tr.json +0 -92
  897. homeassistant/components/binary_sensor/trigger.py +0 -67
  898. homeassistant/components/binary_sensor/triggers.yaml +0 -25
  899. homeassistant/components/color_extractor/translations/mk.json +0 -7
  900. homeassistant/components/compit/translations/tr.json +0 -35
  901. homeassistant/components/cync/translations/tr.json +0 -46
  902. homeassistant/components/datetime/translations/sr-Latn.json +0 -17
  903. homeassistant/components/droplet/translations/tr.json +0 -40
  904. homeassistant/components/ekeybionyx/translations/tr.json +0 -66
  905. homeassistant/components/energy/translations/sr-Latn.json +0 -64
  906. homeassistant/components/energyid/translations/el.json +0 -53
  907. homeassistant/components/energyid/translations/en-GB.json +0 -71
  908. homeassistant/components/energyid/translations/es.json +0 -71
  909. homeassistant/components/energyid/translations/ga.json +0 -71
  910. homeassistant/components/energyid/translations/it.json +0 -71
  911. homeassistant/components/energyid/translations/nl.json +0 -1
  912. homeassistant/components/energyid/translations/sv.json +0 -37
  913. homeassistant/components/energyid/translations/tr.json +0 -71
  914. homeassistant/components/essent/translations/el.json +0 -9
  915. homeassistant/components/essent/translations/en-GB.json +0 -70
  916. homeassistant/components/essent/translations/es.json +0 -70
  917. homeassistant/components/essent/translations/ga.json +0 -70
  918. homeassistant/components/essent/translations/tr.json +0 -70
  919. homeassistant/components/fing/translations/tr.json +0 -24
  920. homeassistant/components/forked_daapd/translations/sr-Latn.json +0 -8
  921. homeassistant/components/go2rtc/util.py +0 -12
  922. homeassistant/components/google_air_quality/translations/el.json +0 -72
  923. homeassistant/components/google_air_quality/translations/en-GB.json +0 -225
  924. homeassistant/components/google_air_quality/translations/es.json +0 -239
  925. homeassistant/components/google_air_quality/translations/fr.json +0 -14
  926. homeassistant/components/google_air_quality/translations/ga.json +0 -225
  927. homeassistant/components/google_air_quality/translations/it.json +0 -106
  928. homeassistant/components/google_air_quality/translations/pl.json +0 -11
  929. homeassistant/components/google_air_quality/translations/ru.json +0 -33
  930. homeassistant/components/google_air_quality/translations/sr-Latn.json +0 -35
  931. homeassistant/components/google_air_quality/translations/sv.json +0 -122
  932. homeassistant/components/google_air_quality/translations/tr.json +0 -225
  933. homeassistant/components/hanna/translations/es.json +0 -44
  934. homeassistant/components/hue_ble/translations/el.json +0 -11
  935. homeassistant/components/hue_ble/translations/en-GB.json +0 -21
  936. homeassistant/components/hue_ble/translations/es.json +0 -21
  937. homeassistant/components/hue_ble/translations/et.json +0 -21
  938. homeassistant/components/hue_ble/translations/ga.json +0 -20
  939. homeassistant/components/hue_ble/translations/tr.json +0 -20
  940. homeassistant/components/hunterdouglas_powerview/translations/sr-Latn.json +0 -9
  941. homeassistant/components/imeon_inverter/translations/tr.json +0 -57
  942. homeassistant/components/inels/translations/tr.json +0 -30
  943. homeassistant/components/irm_kmi/translations/tr.json +0 -21
  944. homeassistant/components/labs/translations/es.json +0 -3
  945. homeassistant/components/labs/translations/sr-Latn.json +0 -3
  946. homeassistant/components/lannouncer/translations/tr.json +0 -8
  947. homeassistant/components/libre_hardware_monitor/translations/tr.json +0 -23
  948. homeassistant/components/london_underground/translations/tr.json +0 -38
  949. homeassistant/components/lunatone/translations/tr.json +0 -36
  950. homeassistant/components/media_source/translations/tr.json +0 -5
  951. homeassistant/components/meteo_lt/translations/tr.json +0 -14
  952. homeassistant/components/nintendo_parental_controls/translations/tr.json +0 -68
  953. homeassistant/components/notify/translations/sr-Latn.json +0 -3
  954. homeassistant/components/openrgb/translations/tr.json +0 -84
  955. homeassistant/components/prowl/translations/tr.json +0 -21
  956. homeassistant/components/remote/translations/mk.json +0 -10
  957. homeassistant/components/satel_integra/translations/tr.json +0 -131
  958. homeassistant/components/saunum/translations/ru.json +0 -9
  959. homeassistant/components/saunum/translations/sr-Latn.json +0 -9
  960. homeassistant/components/script/translations/mk.json +0 -10
  961. homeassistant/components/sftp_storage/translations/tr.json +0 -22
  962. homeassistant/components/sleep_as_android/translations/tr.json +0 -68
  963. homeassistant/components/togrill/translations/tr.json +0 -58
  964. homeassistant/components/uptime_kuma/translations/tr.json +0 -13
  965. homeassistant/components/vacuum/translations/mk.json +0 -10
  966. homeassistant/components/victron_ble/translations/es.json +0 -234
  967. homeassistant/components/victron_remote_monitoring/translations/tr.json +0 -102
  968. homeassistant/components/water_heater/translations/mk.json +0 -10
  969. homeassistant/components/zeroconf/translations/tr.json +0 -14
  970. {homeassistant-2025.12.0.dist-info → homeassistant-2025.12.0b2.dist-info}/WHEEL +0 -0
  971. {homeassistant-2025.12.0.dist-info → homeassistant-2025.12.0b2.dist-info}/entry_points.txt +0 -0
  972. {homeassistant-2025.12.0.dist-info → homeassistant-2025.12.0b2.dist-info}/licenses/LICENSE.md +0 -0
  973. {homeassistant-2025.12.0.dist-info → homeassistant-2025.12.0b2.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  974. {homeassistant-2025.12.0.dist-info → homeassistant-2025.12.0b2.dist-info}/top_level.txt +0 -0
@@ -1,162 +1,17 @@
1
1
  {
2
2
  "config": {
3
- "abort": {
4
- "addon_already_running": "{addon_name} eklentisi zaten \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ba\u015flat\u0131lamad\u0131.",
5
- "addon_info_failed": "{addon_name} eklenti bilgisi al\u0131namad\u0131.",
6
- "addon_install_failed": "{addon_name} eklentisi y\u00fcklenemedi.",
7
- "addon_set_config_failed": "{addon_name} yap\u0131land\u0131rmas\u0131 ayarlanamad\u0131.",
8
- "addon_start_failed": "{addon_name} eklentisi ba\u015flat\u0131lamad\u0131.",
9
- "not_hassio": "Donan\u0131m se\u00e7enekleri yaln\u0131zca Home Assistant OS kurulumlar\u0131nda yap\u0131land\u0131r\u0131labilir.",
10
- "otbr_addon_already_running": "OpenThread Border Router eklentisi zaten \u00e7al\u0131\u015f\u0131yor, tekrar y\u00fcklenemez.",
11
- "otbr_still_using_stick": "Bu {model} OpenThread Border Router eklentisi taraf\u0131ndan kullan\u0131l\u0131yor. Thread a\u011f\u0131n\u0131 kullan\u0131yorsan\u0131z alternatif border router'lar\u0131n\u0131z oldu\u011fundan emin olun. Eklentiyi kald\u0131r\u0131n ve tekrar deneyin.",
12
- "unsupported_firmware": "{model} cihaz\u0131n\u0131zdaki radyo yaz\u0131l\u0131m\u0131 belirlenemedi. \u015eu anda cihazla ileti\u015fim kurmaya \u00e7al\u0131\u015fan ba\u015fka bir entegrasyon veya eklenti olmad\u0131\u011f\u0131ndan emin olun. Home Assistant OS'yi sanal bir makinede veya Docker'da \u00e7al\u0131\u015ft\u0131r\u0131yorsan\u0131z, l\u00fctfen cihaz i\u00e7in izinlerin do\u011fru \u015fekilde ayarland\u0131\u011f\u0131ndan emin olun.",
13
- "zha_migration_failed": "ZHA ge\u00e7i\u015fi ba\u015far\u0131l\u0131 olmad\u0131.",
14
- "zha_still_using_stick": "Bu {model} Zigbee Ev Otomasyonu entegrasyonu taraf\u0131ndan kullan\u0131l\u0131yor. L\u00fctfen Zigbee a\u011f\u0131n\u0131z\u0131 ba\u015fka bir adapt\u00f6re ta\u015f\u0131y\u0131n veya entegrasyonu silin ve tekrar deneyin."
15
- },
16
- "flow_title": "{model}",
17
- "progress": {
18
- "install_addon": "{addon_name} eklentisinin kurulumu tamamlanana kadar l\u00fctfen bekleyin. Bu birka\u00e7 dakika s\u00fcrebilir.",
19
- "install_firmware": "Kurulum {firmware_name} firmware. \n \n Bu i\u015flem tamamlanana kadar donan\u0131m\u0131n\u0131zda veya yaz\u0131l\u0131m\u0131n\u0131zda herhangi bir de\u011fi\u015fiklik yapmay\u0131n.",
20
- "install_otbr_addon": "Eklenti y\u00fckleniyor"
21
- },
22
3
  "step": {
23
- "install_thread_firmware": {
24
- "title": "Ba\u011fda\u015ft\u0131r\u0131c\u0131 g\u00fcncelleniyor"
25
- },
26
- "install_zigbee_firmware": {
27
- "title": "Ba\u011fda\u015ft\u0131r\u0131c\u0131 g\u00fcncelleniyor"
28
- },
29
- "pick_firmware": {
30
- "menu_option_descriptions": {
31
- "pick_firmware_thread": "Genellikle Matter over Thread cihazlar\u0131nda kullan\u0131l\u0131r.",
32
- "pick_firmware_thread_migrate": "Bu, Thread Border Router'\u0131n\u0131z\u0131 yeni adapt\u00f6re ta\u015f\u0131yacakt\u0131r.",
33
- "pick_firmware_zigbee": "En yayg\u0131n protokol.",
34
- "pick_firmware_zigbee_migrate": "Bu, Zigbee a\u011f\u0131n\u0131z\u0131 yeni adapt\u00f6re ta\u015f\u0131yacakt\u0131r."
35
- },
36
- "menu_options": {
37
- "pick_firmware_thread_migrate": "Thread'i yeni bir adapt\u00f6re ta\u015f\u0131y\u0131n",
38
- "pick_firmware_zigbee_migrate": "Zigbee'yi yeni bir adapt\u00f6re ta\u015f\u0131y\u0131n"
39
- }
40
- },
41
4
  "show_z2m_docs_url": {
42
5
  "description": "Senin {model} \u015eu anda en son Zigbee ayg\u0131t yaz\u0131l\u0131m\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131yor. \n L\u00fctfen EmberZNet ba\u011fda\u015ft\u0131r\u0131c\u0131lar\u0131 i\u00e7in Zigbee2MQTT belgelerini okuyun ve yap\u0131land\u0131rmay\u0131 kopyalay\u0131n. {model}: {z2m_docs_url}",
43
6
  "title": "Zigbee2MQTT'yi kurun"
44
- },
45
- "zigbee_installation_type": {
46
- "description": "Zigbee adapt\u00f6r\u00fc i\u00e7in kurulum t\u00fcr\u00fcn\u00fc se\u00e7in.",
47
- "menu_option_descriptions": {
48
- "zigbee_intent_custom": "\u00d6rne\u011fin Zigbee2MQTT ile Zigbee'yi manuel olarak kurun ve yap\u0131land\u0131r\u0131n.",
49
- "zigbee_intent_recommended": "Zigbee'yi otomatik olarak kurun ve yap\u0131land\u0131r\u0131n."
50
- },
51
- "menu_options": {
52
- "zigbee_intent_custom": "Ki\u015fiselle\u015ftirilmi\u015f",
53
- "zigbee_intent_recommended": "\u00d6nerilen kurulum"
54
- },
55
- "title": "Zigbee'yi kurun"
56
- },
57
- "zigbee_integration": {
58
- "menu_option_descriptions": {
59
- "zigbee_integration_other": "\u00d6rne\u011fin adapt\u00f6r\u00fc Zigbee2MQTT ile kullanmak istiyorsan\u0131z.",
60
- "zigbee_integration_zha": "Home Assistant'\u0131n Zigbee a\u011f\u0131n\u0131 kontrol etmesini sa\u011flar."
61
- },
62
- "menu_options": {
63
- "zigbee_integration_other": "Di\u011fer",
64
- "zigbee_integration_zha": "Zigbee Ev Otomasyonu"
65
- },
66
- "title": "Zigbee y\u00f6ntemini se\u00e7in"
67
- }
68
- }
69
- },
70
- "entity": {
71
- "switch": {
72
- "beta_firmware": {
73
- "name": "Beta \u00fcr\u00fcn yaz\u0131l\u0131m\u0131 g\u00fcncellemeleri"
74
7
  }
75
8
  }
76
9
  },
77
10
  "options": {
78
- "abort": {
79
- "zha_migration_failed": "ZHA ge\u00e7i\u015fi ba\u015far\u0131l\u0131 olmad\u0131.",
80
- "zha_still_using_stick": "Bu {model} Zigbee Ev Otomasyonu entegrasyonu taraf\u0131ndan kullan\u0131l\u0131yor. L\u00fctfen Zigbee a\u011f\u0131n\u0131z\u0131 ba\u015fka bir adapt\u00f6re ta\u015f\u0131y\u0131n veya entegrasyonu silin ve tekrar deneyin."
81
- },
82
- "error": {
83
- "unknown": "Beklenmeyen hata"
84
- },
85
- "progress": {
86
- "install_addon": "{addon_name} eklentisinin kurulumu tamamlanana kadar l\u00fctfen bekleyin. Bu birka\u00e7 dakika s\u00fcrebilir.",
87
- "install_firmware": "Kurulum {firmware_name} firmware. \n \n Bu i\u015flem tamamlanana kadar donan\u0131m\u0131n\u0131zda veya yaz\u0131l\u0131m\u0131n\u0131zda herhangi bir de\u011fi\u015fiklik yapmay\u0131n.",
88
- "install_otbr_addon": "Eklenti y\u00fckleniyor",
89
- "start_addon": "{addon_name} eklentisinin ba\u015flat\u0131lmas\u0131 tamamlanana kadar l\u00fctfen bekleyin. Bu birka\u00e7 saniye s\u00fcrebilir.",
90
- "start_otbr_addon": "Eklenti ba\u015flat\u0131l\u0131yor"
91
- },
92
11
  "step": {
93
- "addon_installed_other_device": {
94
- "title": "Ba\u015fka bir cihaz i\u00e7in \u00e7oklu protokol deste\u011fi zaten etkin"
95
- },
96
- "addon_menu": {
97
- "menu_options": {
98
- "reconfigure_addon": "IEEE 802.15.4 radyo \u00e7oklu protokol deste\u011fini yeniden yap\u0131land\u0131r\u0131n",
99
- "uninstall_addon": "IEEE 802.15.4 radyo \u00e7oklu protokol deste\u011fini kald\u0131r\u0131n"
100
- }
101
- },
102
- "addon_not_installed": {
103
- "data": {
104
- "enable_multi_pan": "\u00c7oklu protokol deste\u011fini etkinle\u015ftir"
105
- },
106
- "description": "\u00c7oklu protokol deste\u011fi etkinle\u015ftirildi\u011finde, {hardware_name} cihaz\u0131n\u0131n IEEE 802.15.4 radyosu ayn\u0131 anda hem Zigbee hem de Thread (Matter taraf\u0131ndan kullan\u0131l\u0131r) i\u00e7in kullan\u0131labilir. Telsiz zaten ZHA Zigbee entegrasyonu taraf\u0131ndan kullan\u0131l\u0131yorsa, ZHA \u00e7oklu protokol bellenimini kullanmak \u00fczere yeniden yap\u0131land\u0131r\u0131lacakt\u0131r. \n\n Not: Bu deneysel bir \u00f6zelliktir.",
107
- "title": "IEEE 802.15.4 radyosunda \u00e7oklu protokol deste\u011fini etkinle\u015ftirin"
108
- },
109
- "change_channel": {
110
- "data": {
111
- "channel": "Kanal"
112
- },
113
- "description": "Zigbee ve Thread a\u011flar\u0131n\u0131z i\u00e7in bir kanal de\u011fi\u015fikli\u011fi ba\u015flat\u0131n. \n\n Not: Bu geli\u015fmi\u015f bir i\u015flemdir ve yeni kanal t\u0131kan\u0131rsa Thread ve Zigbee a\u011flar\u0131n\u0131z\u0131 \u00e7al\u0131\u015fmaz hale getirebilir. Mevcut a\u011f ko\u015fullar\u0131na ba\u011fl\u0131 olarak, cihazlar\u0131n\u0131z\u0131n \u00e7o\u011fu yeni kanala ta\u015f\u0131nmayabilir ve tekrar \u00e7al\u0131\u015fmaya ba\u015flamadan \u00f6nce yeniden kat\u0131lmalar\u0131 gerekebilir. Dikkatle kullan\u0131n. \n\n **G\u00f6nder**'i se\u00e7ti\u011finizde, kanal de\u011fi\u015fikli\u011fi arka planda sessizce ba\u015flar ve birka\u00e7 dakika sonra tamamlan\u0131r.",
114
- "title": "IEEE 802.15.4 radyo \u00e7oklu protokol deste\u011fini yeniden yap\u0131land\u0131r\u0131n"
115
- },
116
- "confirm_otbr": {
117
- "title": "OpenThread Border Router kurulumu tamamland\u0131"
118
- },
119
- "confirm_zigbee": {
120
- "title": "Zigbee kurulumu tamamland\u0131"
121
- },
122
- "install_addon": {
123
- "title": "Silicon Labs Multiprotocol eklenti kurulumu ba\u015flad\u0131"
124
- },
125
- "install_thread_firmware": {
126
- "title": "Ba\u011fda\u015ft\u0131r\u0131c\u0131 g\u00fcncelleniyor"
127
- },
128
- "install_zigbee_firmware": {
129
- "title": "Ba\u011fda\u015ft\u0131r\u0131c\u0131 g\u00fcncelleniyor"
130
- },
131
- "notify_channel_change": {
132
- "description": "Bir Zigbee ve Konu kanal\u0131 de\u011fi\u015fikli\u011fi ba\u015flat\u0131ld\u0131 ve {delay_minutes} dakika i\u00e7inde tamamlanacak.",
133
- "title": "Kanal de\u011fi\u015fikli\u011fi ba\u015flat\u0131ld\u0131"
134
- },
135
- "notify_unknown_multipan_user": {
136
- "description": "Home Assistant, OTBR ve ZHA i\u00e7in kanallar\u0131 otomatik olarak de\u011fi\u015ftirebilir. Radyo kullanmak i\u00e7in ba\u015fka bir entegrasyon yap\u0131land\u0131rd\u0131ysan\u0131z, \u00f6rne\u011fin Zigbee2MQTT, bu k\u0131lavuzu tamamlad\u0131ktan sonra o entegrasyondaki kanal\u0131 yeniden yap\u0131land\u0131rman\u0131z gerekecektir.",
137
- "title": "Manuel yap\u0131land\u0131rma gerekebilir"
138
- },
139
- "otbr_failed": {
140
- "description": "OpenThread Border Router eklentisi kurulumu ba\u015far\u0131s\u0131z oldu. Ba\u015fka hi\u00e7bir yaz\u0131l\u0131m\u0131n {model} ile ileti\u015fim kurmaya \u00e7al\u0131\u015fmad\u0131\u011f\u0131ndan, \u0130nternete eri\u015fiminiz oldu\u011fundan ve di\u011fer eklentileri kurabildi\u011finizden emin olun ve tekrar deneyin. Sorun devam ederse Supervisor g\u00fcnl\u00fcklerini kontrol edin."
141
- },
142
- "pick_firmware": {
143
- "menu_option_descriptions": {
144
- "pick_firmware_thread": "Genellikle Matter over Thread cihazlar\u0131nda kullan\u0131l\u0131r.",
145
- "pick_firmware_thread_migrate": "Bu, Thread Border Router'\u0131n\u0131z\u0131 yeni adapt\u00f6re ta\u015f\u0131yacakt\u0131r.",
146
- "pick_firmware_zigbee": "En yayg\u0131n protokol.",
147
- "pick_firmware_zigbee_migrate": "Bu, Zigbee a\u011f\u0131n\u0131z\u0131 yeni adapt\u00f6re ta\u015f\u0131yacakt\u0131r."
148
- },
149
- "menu_options": {
150
- "pick_firmware_thread_migrate": "Thread'i yeni bir adapt\u00f6re ta\u015f\u0131y\u0131n",
151
- "pick_firmware_zigbee_migrate": "Zigbee'yi yeni bir adapt\u00f6re ta\u015f\u0131y\u0131n"
152
- }
153
- },
154
12
  "show_z2m_docs_url": {
155
13
  "description": "Senin {model} \u015eu anda en son Zigbee ayg\u0131t yaz\u0131l\u0131m\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131yor. \n L\u00fctfen EmberZNet ba\u011fda\u015ft\u0131r\u0131c\u0131lar\u0131 i\u00e7in Zigbee2MQTT belgelerini okuyun ve yap\u0131land\u0131rmay\u0131 kopyalay\u0131n. {model}: {z2m_docs_url}",
156
14
  "title": "Zigbee2MQTT'yi kurun"
157
- },
158
- "zigbee_integration": {
159
- "title": "Zigbee y\u00f6ntemini se\u00e7in"
160
15
  }
161
16
  }
162
17
  }
@@ -33,14 +33,13 @@ from homeassistant.exceptions import HomeAssistantError
33
33
  from homeassistant.helpers.aiohttp_client import async_get_clientsession
34
34
  from homeassistant.helpers.hassio import is_hassio
35
35
 
36
- from .const import DOMAIN, OTBR_DOMAIN, Z2M_EMBER_DOCS_URL, ZHA_DOMAIN
36
+ from .const import OTBR_DOMAIN, Z2M_EMBER_DOCS_URL, ZHA_DOMAIN
37
37
  from .util import (
38
38
  ApplicationType,
39
39
  FirmwareInfo,
40
40
  OwningAddon,
41
41
  OwningIntegration,
42
42
  ResetTarget,
43
- async_firmware_flashing_context,
44
43
  async_flash_silabs_firmware,
45
44
  get_otbr_addon_manager,
46
45
  guess_firmware_info,
@@ -229,95 +228,83 @@ class BaseFirmwareInstallFlow(ConfigEntryBaseFlow, ABC):
229
228
  # Keep track of the firmware we're working with, for error messages
230
229
  self.installing_firmware_name = firmware_name
231
230
 
232
- # For the duration of firmware flashing, hint to other integrations (i.e. ZHA)
233
- # that the hardware is in use and should not be accessed. This is separate from
234
- # locking the serial port itself, since a momentary release of the port may
235
- # still allow for ZHA to reclaim the device.
236
- async with async_firmware_flashing_context(self.hass, self._device, DOMAIN):
237
- # Installing new firmware is only truly required if the wrong type is
238
- # installed: upgrading to the latest release of the current firmware type
239
- # isn't strictly necessary for functionality.
240
- self._probed_firmware_info = await probe_silabs_firmware_info(
241
- self._device,
242
- bootloader_reset_methods=self.BOOTLOADER_RESET_METHODS,
243
- application_probe_methods=self.APPLICATION_PROBE_METHODS,
244
- )
231
+ # Installing new firmware is only truly required if the wrong type is
232
+ # installed: upgrading to the latest release of the current firmware type
233
+ # isn't strictly necessary for functionality.
234
+ self._probed_firmware_info = await probe_silabs_firmware_info(
235
+ self._device,
236
+ bootloader_reset_methods=self.BOOTLOADER_RESET_METHODS,
237
+ application_probe_methods=self.APPLICATION_PROBE_METHODS,
238
+ )
239
+
240
+ firmware_install_required = self._probed_firmware_info is None or (
241
+ self._probed_firmware_info.firmware_type != expected_installed_firmware_type
242
+ )
245
243
 
246
- firmware_install_required = self._probed_firmware_info is None or (
247
- self._probed_firmware_info.firmware_type
248
- != expected_installed_firmware_type
244
+ session = async_get_clientsession(self.hass)
245
+ client = FirmwareUpdateClient(fw_update_url, session)
246
+
247
+ try:
248
+ manifest = await client.async_update_data()
249
+ fw_manifest = next(
250
+ fw for fw in manifest.firmwares if fw.filename.startswith(fw_type)
249
251
  )
252
+ except (StopIteration, TimeoutError, ClientError, ManifestMissing) as err:
253
+ _LOGGER.warning("Failed to fetch firmware update manifest", exc_info=True)
250
254
 
251
- session = async_get_clientsession(self.hass)
252
- client = FirmwareUpdateClient(fw_update_url, session)
255
+ # Not having internet access should not prevent setup
256
+ if not firmware_install_required:
257
+ _LOGGER.debug("Skipping firmware upgrade due to index download failure")
258
+ return
253
259
 
254
- try:
255
- manifest = await client.async_update_data()
256
- fw_manifest = next(
257
- fw for fw in manifest.firmwares if fw.filename.startswith(fw_type)
258
- )
259
- except (StopIteration, TimeoutError, ClientError, ManifestMissing) as err:
260
- _LOGGER.warning(
261
- "Failed to fetch firmware update manifest", exc_info=True
262
- )
260
+ raise AbortFlow(
261
+ reason="fw_download_failed",
262
+ description_placeholders=self._get_translation_placeholders(),
263
+ ) from err
263
264
 
264
- # Not having internet access should not prevent setup
265
- if not firmware_install_required:
266
- _LOGGER.debug(
267
- "Skipping firmware upgrade due to index download failure"
268
- )
269
- return
265
+ if not firmware_install_required:
266
+ assert self._probed_firmware_info is not None
270
267
 
271
- raise AbortFlow(
272
- reason="fw_download_failed",
273
- description_placeholders=self._get_translation_placeholders(),
274
- ) from err
268
+ # Make sure we do not downgrade the firmware
269
+ fw_metadata = NabuCasaMetadata.from_json(fw_manifest.metadata)
270
+ fw_version = fw_metadata.get_public_version()
271
+ probed_fw_version = Version(self._probed_firmware_info.firmware_version)
275
272
 
273
+ if probed_fw_version >= fw_version:
274
+ _LOGGER.debug(
275
+ "Not downgrading firmware, installed %s is newer than available %s",
276
+ probed_fw_version,
277
+ fw_version,
278
+ )
279
+ return
280
+
281
+ try:
282
+ fw_data = await client.async_fetch_firmware(fw_manifest)
283
+ except (TimeoutError, ClientError, ValueError) as err:
284
+ _LOGGER.warning("Failed to fetch firmware update", exc_info=True)
285
+
286
+ # If we cannot download new firmware, we shouldn't block setup
276
287
  if not firmware_install_required:
277
- assert self._probed_firmware_info is not None
278
-
279
- # Make sure we do not downgrade the firmware
280
- fw_metadata = NabuCasaMetadata.from_json(fw_manifest.metadata)
281
- fw_version = fw_metadata.get_public_version()
282
- probed_fw_version = Version(self._probed_firmware_info.firmware_version)
283
-
284
- if probed_fw_version >= fw_version:
285
- _LOGGER.debug(
286
- "Not downgrading firmware, installed %s is newer than available %s",
287
- probed_fw_version,
288
- fw_version,
289
- )
290
- return
288
+ _LOGGER.debug("Skipping firmware upgrade due to image download failure")
289
+ return
291
290
 
292
- try:
293
- fw_data = await client.async_fetch_firmware(fw_manifest)
294
- except (TimeoutError, ClientError, ValueError) as err:
295
- _LOGGER.warning("Failed to fetch firmware update", exc_info=True)
291
+ # Otherwise, fail
292
+ raise AbortFlow(
293
+ reason="fw_download_failed",
294
+ description_placeholders=self._get_translation_placeholders(),
295
+ ) from err
296
296
 
297
- # If we cannot download new firmware, we shouldn't block setup
298
- if not firmware_install_required:
299
- _LOGGER.debug(
300
- "Skipping firmware upgrade due to image download failure"
301
- )
302
- return
303
-
304
- # Otherwise, fail
305
- raise AbortFlow(
306
- reason="fw_download_failed",
307
- description_placeholders=self._get_translation_placeholders(),
308
- ) from err
309
-
310
- self._probed_firmware_info = await async_flash_silabs_firmware(
311
- hass=self.hass,
312
- device=self._device,
313
- fw_data=fw_data,
314
- expected_installed_firmware_type=expected_installed_firmware_type,
315
- bootloader_reset_methods=self.BOOTLOADER_RESET_METHODS,
316
- application_probe_methods=self.APPLICATION_PROBE_METHODS,
317
- progress_callback=lambda offset, total: self.async_update_progress(
318
- offset / total
319
- ),
320
- )
297
+ self._probed_firmware_info = await async_flash_silabs_firmware(
298
+ hass=self.hass,
299
+ device=self._device,
300
+ fw_data=fw_data,
301
+ expected_installed_firmware_type=expected_installed_firmware_type,
302
+ bootloader_reset_methods=self.BOOTLOADER_RESET_METHODS,
303
+ application_probe_methods=self.APPLICATION_PROBE_METHODS,
304
+ progress_callback=lambda offset, total: self.async_update_progress(
305
+ offset / total
306
+ ),
307
+ )
321
308
 
322
309
  async def _configure_and_start_otbr_addon(self) -> None:
323
310
  """Configure and start the OTBR addon."""
@@ -457,6 +444,10 @@ class BaseFirmwareInstallFlow(ConfigEntryBaseFlow, ABC):
457
444
  # This step is necessary to prevent `user_input` from being passed through
458
445
  return await self.async_step_continue_zigbee()
459
446
 
447
+ def _extra_zha_hardware_options(self) -> dict[str, Any]:
448
+ """Return extra ZHA hardware options."""
449
+ return {}
450
+
460
451
  async def async_step_continue_zigbee(
461
452
  self, user_input: dict[str, Any] | None = None
462
453
  ) -> ConfigFlowResult:
@@ -479,6 +470,7 @@ class BaseFirmwareInstallFlow(ConfigEntryBaseFlow, ABC):
479
470
  },
480
471
  "radio_type": "ezsp",
481
472
  "flow_strategy": self._zigbee_flow_strategy,
473
+ **self._extra_zha_hardware_options(),
482
474
  },
483
475
  )
484
476
  return self._continue_zha_flow(result)
@@ -53,10 +53,6 @@
53
53
  },
54
54
  "title": "Elige tu protocolo"
55
55
  },
56
- "show_z2m_docs_url": {
57
- "description": "Tu {model} ahora est\u00e1 ejecutando el \u00faltimo firmware Zigbee. \nPor favor, lee la documentaci\u00f3n de Zigbee2MQTT para los adaptadores EmberZNet y copia la configuraci\u00f3n para tu {model}: {z2m_docs_url}",
58
- "title": "Configurar Zigbee2MQTT"
59
- },
60
56
  "start_otbr_addon": {
61
57
  "title": "Configuraci\u00f3n de Thread"
62
58
  },
@@ -44,10 +44,6 @@
44
44
  "pick_firmware_zigbee_migrate": "Aistrigh Zigbee chuig oiri\u00fant\u00f3ir nua"
45
45
  }
46
46
  },
47
- "show_z2m_docs_url": {
48
- "description": "T\u00e1 an fhirmchl\u00e1r Zigbee is d\u00e9ana\u00ed \u00e1 rith ar do {model} anois.\nL\u00e9igh an doicim\u00e9ad\u00fa Zigbee2MQTT le haghaidh oiri\u00fanaitheoir\u00ed EmberZNet agus c\u00f3ipe\u00e1il an chumra\u00edocht do do {model}: {z2m_docs_url}",
49
- "title": "Socraigh Zigbee2MQTT"
50
- },
51
47
  "zigbee_installation_type": {
52
48
  "description": "Roghnaigh an cine\u00e1l suite\u00e1la don oiri\u00fant\u00f3ir Zigbee.",
53
49
  "menu_option_descriptions": {
@@ -8,9 +8,7 @@
8
8
  "zha_still_using_stick": "Bu {model} Zigbee Ev Otomasyonu entegrasyonu taraf\u0131ndan kullan\u0131l\u0131yor. L\u00fctfen Zigbee a\u011f\u0131n\u0131z\u0131 ba\u015fka bir adapt\u00f6re ta\u015f\u0131y\u0131n veya entegrasyonu silin ve tekrar deneyin."
9
9
  },
10
10
  "progress": {
11
- "install_firmware": "Kurulum {firmware_name} firmware. \n \n Bu i\u015flem tamamlanana kadar donan\u0131m\u0131n\u0131zda veya yaz\u0131l\u0131m\u0131n\u0131zda herhangi bir de\u011fi\u015fiklik yapmay\u0131n.",
12
- "install_otbr_addon": "Eklenti y\u00fckleniyor",
13
- "start_otbr_addon": "Eklenti ba\u015flat\u0131l\u0131yor"
11
+ "install_firmware": "Kurulum {firmware_name} firmware. \n \n Bu i\u015flem tamamlanana kadar donan\u0131m\u0131n\u0131zda veya yaz\u0131l\u0131m\u0131n\u0131zda herhangi bir de\u011fi\u015fiklik yapmay\u0131n."
14
12
  },
15
13
  "step": {
16
14
  "confirm_otbr": {
@@ -19,53 +17,12 @@
19
17
  "confirm_zigbee": {
20
18
  "title": "Zigbee kurulumu tamamland\u0131"
21
19
  },
22
- "install_thread_firmware": {
23
- "title": "Ba\u011fda\u015ft\u0131r\u0131c\u0131 g\u00fcncelleniyor"
24
- },
25
- "install_zigbee_firmware": {
26
- "title": "Ba\u011fda\u015ft\u0131r\u0131c\u0131 g\u00fcncelleniyor"
27
- },
28
20
  "otbr_failed": {
29
21
  "description": "OpenThread Border Router eklentisi kurulumu ba\u015far\u0131s\u0131z oldu. Ba\u015fka hi\u00e7bir yaz\u0131l\u0131m\u0131n {model} ile ileti\u015fim kurmaya \u00e7al\u0131\u015fmad\u0131\u011f\u0131ndan, \u0130nternete eri\u015fiminiz oldu\u011fundan ve di\u011fer eklentileri kurabildi\u011finizden emin olun ve tekrar deneyin. Sorun devam ederse Supervisor g\u00fcnl\u00fcklerini kontrol edin."
30
22
  },
31
- "pick_firmware": {
32
- "menu_option_descriptions": {
33
- "pick_firmware_thread": "Genellikle Matter over Thread cihazlar\u0131nda kullan\u0131l\u0131r.",
34
- "pick_firmware_thread_migrate": "Bu, Thread Border Router'\u0131n\u0131z\u0131 yeni adapt\u00f6re ta\u015f\u0131yacakt\u0131r.",
35
- "pick_firmware_zigbee": "En yayg\u0131n protokol.",
36
- "pick_firmware_zigbee_migrate": "Bu, Zigbee a\u011f\u0131n\u0131z\u0131 yeni adapt\u00f6re ta\u015f\u0131yacakt\u0131r."
37
- },
38
- "menu_options": {
39
- "pick_firmware_thread_migrate": "Thread'i yeni bir adapt\u00f6re ta\u015f\u0131y\u0131n",
40
- "pick_firmware_zigbee_migrate": "Zigbee'yi yeni bir adapt\u00f6re ta\u015f\u0131y\u0131n"
41
- }
42
- },
43
23
  "show_z2m_docs_url": {
44
24
  "description": "Senin {model} \u015eu anda en son Zigbee ayg\u0131t yaz\u0131l\u0131m\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131yor. \n L\u00fctfen EmberZNet ba\u011fda\u015ft\u0131r\u0131c\u0131lar\u0131 i\u00e7in Zigbee2MQTT belgelerini okuyun ve yap\u0131land\u0131rmay\u0131 kopyalay\u0131n. {model}: {z2m_docs_url}",
45
25
  "title": "Zigbee2MQTT'yi kurun"
46
- },
47
- "zigbee_installation_type": {
48
- "description": "Zigbee adapt\u00f6r\u00fc i\u00e7in kurulum t\u00fcr\u00fcn\u00fc se\u00e7in.",
49
- "menu_option_descriptions": {
50
- "zigbee_intent_custom": "\u00d6rne\u011fin Zigbee2MQTT ile Zigbee'yi manuel olarak kurun ve yap\u0131land\u0131r\u0131n.",
51
- "zigbee_intent_recommended": "Zigbee'yi otomatik olarak kurun ve yap\u0131land\u0131r\u0131n."
52
- },
53
- "menu_options": {
54
- "zigbee_intent_custom": "Ki\u015fiselle\u015ftirilmi\u015f",
55
- "zigbee_intent_recommended": "\u00d6nerilen kurulum"
56
- },
57
- "title": "Zigbee'yi kurun"
58
- },
59
- "zigbee_integration": {
60
- "menu_option_descriptions": {
61
- "zigbee_integration_other": "\u00d6rne\u011fin adapt\u00f6r\u00fc Zigbee2MQTT ile kullanmak istiyorsan\u0131z.",
62
- "zigbee_integration_zha": "Home Assistant'\u0131n Zigbee a\u011f\u0131n\u0131 kontrol etmesini sa\u011flar."
63
- },
64
- "menu_options": {
65
- "zigbee_integration_other": "Di\u011fer",
66
- "zigbee_integration_zha": "Zigbee Ev Otomasyonu"
67
- },
68
- "title": "Zigbee y\u00f6ntemini se\u00e7in"
69
26
  }
70
27
  }
71
28
  }
@@ -26,7 +26,6 @@ from .util import (
26
26
  ApplicationType,
27
27
  FirmwareInfo,
28
28
  ResetTarget,
29
- async_firmware_flashing_context,
30
29
  async_flash_silabs_firmware,
31
30
  )
32
31
 
@@ -275,18 +274,16 @@ class BaseFirmwareUpdateEntity(
275
274
  )
276
275
 
277
276
  try:
278
- async with async_firmware_flashing_context(
279
- self.hass, self._current_device, self._config_entry.domain
280
- ):
281
- firmware_info = await async_flash_silabs_firmware(
282
- hass=self.hass,
283
- device=self._current_device,
284
- fw_data=fw_data,
285
- expected_installed_firmware_type=self.entity_description.expected_firmware_type,
286
- bootloader_reset_methods=self.BOOTLOADER_RESET_METHODS,
287
- application_probe_methods=self.APPLICATION_PROBE_METHODS,
288
- progress_callback=self._update_progress,
289
- )
277
+ firmware_info = await async_flash_silabs_firmware(
278
+ hass=self.hass,
279
+ device=self._current_device,
280
+ fw_data=fw_data,
281
+ expected_installed_firmware_type=self.entity_description.expected_firmware_type,
282
+ bootloader_reset_methods=self.BOOTLOADER_RESET_METHODS,
283
+ application_probe_methods=self.APPLICATION_PROBE_METHODS,
284
+ progress_callback=self._update_progress,
285
+ domain=self._config_entry.domain,
286
+ )
290
287
  finally:
291
288
  self._attr_in_progress = False
292
289
  self.async_write_ha_state()
@@ -26,6 +26,7 @@ from homeassistant.helpers.singleton import singleton
26
26
 
27
27
  from . import DATA_COMPONENT
28
28
  from .const import (
29
+ DOMAIN,
29
30
  OTBR_ADDON_MANAGER_DATA,
30
31
  OTBR_ADDON_NAME,
31
32
  OTBR_ADDON_SLUG,
@@ -365,22 +366,6 @@ async def probe_silabs_firmware_type(
365
366
  return fw_info.firmware_type
366
367
 
367
368
 
368
- @asynccontextmanager
369
- async def async_firmware_flashing_context(
370
- hass: HomeAssistant, device: str, source_domain: str
371
- ) -> AsyncIterator[None]:
372
- """Register a device as having its firmware being actively interacted with."""
373
- async with async_firmware_update_context(hass, device, source_domain):
374
- firmware_info = await guess_firmware_info(hass, device)
375
- _LOGGER.debug("Guessed firmware info before update: %s", firmware_info)
376
-
377
- async with AsyncExitStack() as stack:
378
- for owner in firmware_info.owners:
379
- await stack.enter_async_context(owner.temporarily_stop(hass))
380
-
381
- yield
382
-
383
-
384
369
  async def async_flash_silabs_firmware(
385
370
  hass: HomeAssistant,
386
371
  device: str,
@@ -389,11 +374,10 @@ async def async_flash_silabs_firmware(
389
374
  bootloader_reset_methods: Sequence[ResetTarget],
390
375
  application_probe_methods: Sequence[tuple[ApplicationType, int]],
391
376
  progress_callback: Callable[[int, int], None] | None = None,
377
+ *,
378
+ domain: str = DOMAIN,
392
379
  ) -> FirmwareInfo:
393
- """Flash firmware to the SiLabs device.
394
-
395
- This function is meant to be used within a firmware update context.
396
- """
380
+ """Flash firmware to the SiLabs device."""
397
381
  if not any(
398
382
  method == expected_installed_firmware_type
399
383
  for method, _ in application_probe_methods
@@ -403,44 +387,54 @@ async def async_flash_silabs_firmware(
403
387
  f" not in application probe methods {application_probe_methods!r}"
404
388
  )
405
389
 
406
- fw_image = await hass.async_add_executor_job(parse_firmware_image, fw_data)
407
-
408
- flasher = Flasher(
409
- device=device,
410
- probe_methods=tuple(
411
- (m.as_flasher_application_type(), baudrate)
412
- for m, baudrate in application_probe_methods
413
- ),
414
- bootloader_reset=tuple(
415
- m.as_flasher_reset_target() for m in bootloader_reset_methods
416
- ),
417
- )
418
-
419
- try:
420
- # Enter the bootloader with indeterminate progress
421
- await flasher.enter_bootloader()
422
-
423
- # Flash the firmware, with progress
424
- await flasher.flash_firmware(fw_image, progress_callback=progress_callback)
425
- except PermissionError as err:
426
- raise HomeAssistantError(
427
- "Failed to flash firmware: Device is used by another application"
428
- ) from err
429
- except Exception as err:
430
- raise HomeAssistantError("Failed to flash firmware") from err
431
-
432
- probed_firmware_info = await probe_silabs_firmware_info(
433
- device,
434
- bootloader_reset_methods=bootloader_reset_methods,
435
- # Only probe for the expected installed firmware type
436
- application_probe_methods=[
437
- (method, baudrate)
438
- for method, baudrate in application_probe_methods
439
- if method == expected_installed_firmware_type
440
- ],
441
- )
390
+ async with async_firmware_update_context(hass, device, domain):
391
+ firmware_info = await guess_firmware_info(hass, device)
392
+ _LOGGER.debug("Identified firmware info: %s", firmware_info)
393
+
394
+ fw_image = await hass.async_add_executor_job(parse_firmware_image, fw_data)
395
+
396
+ flasher = Flasher(
397
+ device=device,
398
+ probe_methods=tuple(
399
+ (m.as_flasher_application_type(), baudrate)
400
+ for m, baudrate in application_probe_methods
401
+ ),
402
+ bootloader_reset=tuple(
403
+ m.as_flasher_reset_target() for m in bootloader_reset_methods
404
+ ),
405
+ )
442
406
 
443
- if probed_firmware_info is None:
444
- raise HomeAssistantError("Failed to probe the firmware after flashing")
407
+ async with AsyncExitStack() as stack:
408
+ for owner in firmware_info.owners:
409
+ await stack.enter_async_context(owner.temporarily_stop(hass))
445
410
 
446
- return probed_firmware_info
411
+ try:
412
+ # Enter the bootloader with indeterminate progress
413
+ await flasher.enter_bootloader()
414
+
415
+ # Flash the firmware, with progress
416
+ await flasher.flash_firmware(
417
+ fw_image, progress_callback=progress_callback
418
+ )
419
+ except PermissionError as err:
420
+ raise HomeAssistantError(
421
+ "Failed to flash firmware: Device is used by another application"
422
+ ) from err
423
+ except Exception as err:
424
+ raise HomeAssistantError("Failed to flash firmware") from err
425
+
426
+ probed_firmware_info = await probe_silabs_firmware_info(
427
+ device,
428
+ bootloader_reset_methods=bootloader_reset_methods,
429
+ # Only probe for the expected installed firmware type
430
+ application_probe_methods=[
431
+ (method, baudrate)
432
+ for method, baudrate in application_probe_methods
433
+ if method == expected_installed_firmware_type
434
+ ],
435
+ )
436
+
437
+ if probed_firmware_info is None:
438
+ raise HomeAssistantError("Failed to probe the firmware after flashing")
439
+
440
+ return probed_firmware_info