homeassistant 2025.8.0b3__py3-none-any.whl → 2025.8.0b5__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 (547) hide show
  1. homeassistant/components/airos/translations/ko.json +13 -0
  2. homeassistant/components/airtouch5/translations/ko.json +11 -0
  3. homeassistant/components/airzone/translations/ko.json +9 -0
  4. homeassistant/components/airzone_cloud/translations/ko.json +13 -0
  5. homeassistant/components/alexa_devices/translations/ko.json +18 -0
  6. homeassistant/components/alexa_devices/translations/nl.json +7 -1
  7. homeassistant/components/alexa_devices/translations/sk.json +393 -5
  8. homeassistant/components/altruist/translations/ko.json +11 -0
  9. homeassistant/components/analytics_insights/translations/ga.json +7 -2
  10. homeassistant/components/androidtv_remote/translations/ko.json +5 -0
  11. homeassistant/components/anthropic/__init__.py +78 -11
  12. homeassistant/components/anthropic/config_flow.py +1 -1
  13. homeassistant/components/anthropic/translations/ko.json +12 -1
  14. homeassistant/components/aprilaire/translations/ko.json +10 -0
  15. homeassistant/components/apsystems/translations/ko.json +9 -0
  16. homeassistant/components/aquacell/translations/ko.json +1 -1
  17. homeassistant/components/aseko_pool_live/translations/ko.json +6 -0
  18. homeassistant/components/assist_satellite/translations/sl.json +7 -0
  19. homeassistant/components/august/manifest.json +1 -1
  20. homeassistant/components/autarco/translations/ko.json +17 -0
  21. homeassistant/components/axis/manifest.json +1 -1
  22. homeassistant/components/bang_olufsen/translations/ga.json +15 -0
  23. homeassistant/components/blebox/translations/ko.json +3 -1
  24. homeassistant/components/blink/translations/ga.json +7 -0
  25. homeassistant/components/blue_current/translations/ko.json +9 -0
  26. homeassistant/components/bluesound/translations/ko.json +10 -0
  27. homeassistant/components/bluetooth/manifest.json +1 -1
  28. homeassistant/components/bosch_alarm/translations/ko.json +22 -0
  29. homeassistant/components/bring/translations/ko.json +22 -0
  30. homeassistant/components/brother/translations/ko.json +5 -0
  31. homeassistant/components/bsblan/translations/ko.json +6 -0
  32. homeassistant/components/cambridge_audio/translations/ko.json +16 -0
  33. homeassistant/components/ccm15/translations/ko.json +12 -0
  34. homeassistant/components/chacon_dio/translations/ko.json +12 -0
  35. homeassistant/components/cloud/manifest.json +1 -1
  36. homeassistant/components/cloud/translations/he.json +4 -0
  37. homeassistant/components/co2signal/translations/ko.json +5 -0
  38. homeassistant/components/comelit/translations/ko.json +7 -0
  39. homeassistant/components/cookidoo/translations/ko.json +24 -0
  40. homeassistant/components/datadog/translations/ko.json +12 -0
  41. homeassistant/components/datadog/translations/sv.json +17 -1
  42. homeassistant/components/devolo_home_control/translations/ko.json +5 -0
  43. homeassistant/components/devolo_home_network/translations/ko.json +7 -1
  44. homeassistant/components/doorbird/translations/ko.json +6 -0
  45. homeassistant/components/downloader/__init__.py +3 -0
  46. homeassistant/components/downloader/services.py +24 -14
  47. homeassistant/components/downloader/strings.json +8 -0
  48. homeassistant/components/downloader/translations/cs.json +8 -0
  49. homeassistant/components/downloader/translations/de.json +8 -0
  50. homeassistant/components/downloader/translations/en.json +8 -0
  51. homeassistant/components/downloader/translations/et.json +8 -0
  52. homeassistant/components/downloader/translations/ru.json +8 -0
  53. homeassistant/components/downloader/translations/sk.json +8 -0
  54. homeassistant/components/downloader/translations/zh-Hans.json +8 -0
  55. homeassistant/components/downloader/translations/zh-Hant.json +8 -0
  56. homeassistant/components/duke_energy/translations/ko.json +12 -0
  57. homeassistant/components/duotecno/translations/ko.json +1 -0
  58. homeassistant/components/ecovacs/translations/ga.json +51 -1
  59. homeassistant/components/ecovacs/translations/ko.json +11 -0
  60. homeassistant/components/eheimdigital/translations/ko.json +16 -0
  61. homeassistant/components/electric_kiwi/translations/ga.json +3 -0
  62. homeassistant/components/electric_kiwi/translations/ko.json +3 -0
  63. homeassistant/components/elevenlabs/translations/ko.json +1 -1
  64. homeassistant/components/elmax/translations/ko.json +6 -0
  65. homeassistant/components/elvia/translations/ko.json +11 -0
  66. homeassistant/components/emoncms/translations/cs.json +8 -0
  67. homeassistant/components/emoncms/translations/ko.json +12 -0
  68. homeassistant/components/emoncms/translations/sk.json +8 -0
  69. homeassistant/components/emoncms/translations/zh-Hans.json +8 -0
  70. homeassistant/components/energenie_power_sockets/translations/ko.json +11 -0
  71. homeassistant/components/enigma2/translations/ko.json +14 -0
  72. homeassistant/components/enphase_envoy/translations/ga.json +9 -0
  73. homeassistant/components/enphase_envoy/translations/ko.json +13 -0
  74. homeassistant/components/epic_games_store/translations/ko.json +12 -0
  75. homeassistant/components/epion/translations/ko.json +11 -0
  76. homeassistant/components/feedreader/translations/ko.json +16 -0
  77. homeassistant/components/filter/translations/ko.json +9 -0
  78. homeassistant/components/fitbit/translations/ko.json +3 -0
  79. homeassistant/components/flexit_bacnet/translations/ga.json +21 -0
  80. homeassistant/components/fritz/translations/ko.json +9 -0
  81. homeassistant/components/fritzbox/translations/ko.json +5 -0
  82. homeassistant/components/fritzbox_callmonitor/translations/ko.json +11 -0
  83. homeassistant/components/fronius/translations/ko.json +5 -0
  84. homeassistant/components/frontend/manifest.json +1 -1
  85. homeassistant/components/fujitsu_fglair/translations/ko.json +17 -0
  86. homeassistant/components/fyta/translations/ko.json +16 -0
  87. homeassistant/components/generic_hygrostat/translations/ko.json +11 -0
  88. homeassistant/components/generic_thermostat/translations/ko.json +9 -0
  89. homeassistant/components/geniushub/translations/ko.json +16 -0
  90. homeassistant/components/geocaching/translations/ko.json +3 -0
  91. homeassistant/components/gios/translations/sv.json +3 -0
  92. homeassistant/components/glances/translations/ga.json +48 -0
  93. homeassistant/components/goalzero/translations/ru.json +3 -0
  94. homeassistant/components/google/translations/ko.json +3 -0
  95. homeassistant/components/google_assistant_sdk/translations/ko.json +3 -0
  96. homeassistant/components/google_drive/translations/ko.json +11 -0
  97. homeassistant/components/google_generative_ai_conversation/strings.json +3 -3
  98. homeassistant/components/google_generative_ai_conversation/translations/cs.json +3 -3
  99. homeassistant/components/google_generative_ai_conversation/translations/de.json +3 -3
  100. homeassistant/components/google_generative_ai_conversation/translations/el.json +0 -5
  101. homeassistant/components/google_generative_ai_conversation/translations/en-GB.json +0 -5
  102. homeassistant/components/google_generative_ai_conversation/translations/en.json +3 -3
  103. homeassistant/components/google_generative_ai_conversation/translations/es.json +0 -5
  104. homeassistant/components/google_generative_ai_conversation/translations/et.json +3 -3
  105. homeassistant/components/google_generative_ai_conversation/translations/fr.json +0 -5
  106. homeassistant/components/google_generative_ai_conversation/translations/ga.json +0 -5
  107. homeassistant/components/google_generative_ai_conversation/translations/ja.json +0 -5
  108. homeassistant/components/google_generative_ai_conversation/translations/ko.json +38 -0
  109. homeassistant/components/google_generative_ai_conversation/translations/lt.json +0 -5
  110. homeassistant/components/google_generative_ai_conversation/translations/pt.json +0 -5
  111. homeassistant/components/google_generative_ai_conversation/translations/sk.json +3 -3
  112. homeassistant/components/google_generative_ai_conversation/translations/sl.json +9 -0
  113. homeassistant/components/google_generative_ai_conversation/translations/zh-Hans.json +3 -3
  114. homeassistant/components/google_generative_ai_conversation/translations/zh-Hant.json +3 -3
  115. homeassistant/components/google_mail/translations/ko.json +3 -0
  116. homeassistant/components/google_photos/translations/ko.json +5 -0
  117. homeassistant/components/google_sheets/translations/ko.json +3 -0
  118. homeassistant/components/google_tasks/translations/ko.json +3 -0
  119. homeassistant/components/google_travel_time/translations/ko.json +5 -0
  120. homeassistant/components/gpsd/translations/ko.json +16 -1
  121. homeassistant/components/group/translations/ga.json +9 -0
  122. homeassistant/components/group/translations/sk.json +18 -0
  123. homeassistant/components/habitica/translations/ko.json +32 -0
  124. homeassistant/components/hassio/issues.py +4 -2
  125. homeassistant/components/hassio/strings.json +38 -30
  126. homeassistant/components/hassio/translations/bg.json +0 -1
  127. homeassistant/components/hassio/translations/ca.json +0 -22
  128. homeassistant/components/hassio/translations/cs.json +37 -25
  129. homeassistant/components/hassio/translations/da.json +0 -2
  130. homeassistant/components/hassio/translations/de.json +34 -26
  131. homeassistant/components/hassio/translations/el.json +0 -26
  132. homeassistant/components/hassio/translations/en-GB.json +0 -25
  133. homeassistant/components/hassio/translations/en.json +34 -26
  134. homeassistant/components/hassio/translations/es.json +0 -26
  135. homeassistant/components/hassio/translations/et.json +0 -26
  136. homeassistant/components/hassio/translations/fi.json +0 -23
  137. homeassistant/components/hassio/translations/fr.json +0 -24
  138. homeassistant/components/hassio/translations/fy.json +0 -7
  139. homeassistant/components/hassio/translations/ga.json +3 -1
  140. homeassistant/components/hassio/translations/gsw.json +0 -2
  141. homeassistant/components/hassio/translations/he.json +34 -26
  142. homeassistant/components/hassio/translations/hr.json +0 -2
  143. homeassistant/components/hassio/translations/hu.json +0 -25
  144. homeassistant/components/hassio/translations/id.json +0 -25
  145. homeassistant/components/hassio/translations/it.json +0 -22
  146. homeassistant/components/hassio/translations/ja.json +0 -23
  147. homeassistant/components/hassio/translations/ko.json +3 -22
  148. homeassistant/components/hassio/translations/lt.json +0 -26
  149. homeassistant/components/hassio/translations/nb.json +0 -22
  150. homeassistant/components/hassio/translations/nl.json +0 -23
  151. homeassistant/components/hassio/translations/pl.json +0 -22
  152. homeassistant/components/hassio/translations/pt-BR.json +0 -22
  153. homeassistant/components/hassio/translations/pt.json +0 -25
  154. homeassistant/components/hassio/translations/ro.json +0 -22
  155. homeassistant/components/hassio/translations/ru.json +0 -25
  156. homeassistant/components/hassio/translations/sk.json +37 -25
  157. homeassistant/components/hassio/translations/sl.json +0 -21
  158. homeassistant/components/hassio/translations/sv.json +0 -25
  159. homeassistant/components/hassio/translations/tr.json +0 -25
  160. homeassistant/components/hassio/translations/uk.json +0 -22
  161. homeassistant/components/hassio/translations/vi.json +0 -23
  162. homeassistant/components/hassio/translations/zh-Hans.json +3 -25
  163. homeassistant/components/hassio/translations/zh-Hant.json +34 -26
  164. homeassistant/components/heos/translations/ko.json +21 -0
  165. homeassistant/components/hko/translations/ko.json +11 -0
  166. homeassistant/components/holiday/manifest.json +1 -1
  167. homeassistant/components/home_connect/translations/ko.json +3 -0
  168. homeassistant/components/home_connect/translations/ru.json +6 -4
  169. homeassistant/components/homeassistant/translations/de.json +1 -1
  170. homeassistant/components/homee/translations/ko.json +22 -0
  171. homeassistant/components/homee/translations/ru.json +5 -0
  172. homeassistant/components/homematicip_cloud/translations/sv.json +11 -0
  173. homeassistant/components/homeworks/translations/ko.json +41 -0
  174. homeassistant/components/html5/translations/ko.json +9 -0
  175. homeassistant/components/http/translations/sv.json +1 -1
  176. homeassistant/components/hue/translations/ga.json +5 -0
  177. homeassistant/components/husqvarna_automower/translations/ga.json +6 -0
  178. homeassistant/components/husqvarna_automower/translations/he.json +2 -0
  179. homeassistant/components/husqvarna_automower/translations/ko.json +11 -0
  180. homeassistant/components/huum/translations/ko.json +12 -0
  181. homeassistant/components/hydrawise/translations/ko.json +15 -0
  182. homeassistant/components/ibeacon/translations/ga.json +15 -0
  183. homeassistant/components/imeon_inverter/translations/ko.json +13 -0
  184. homeassistant/components/immich/translations/he.json +10 -0
  185. homeassistant/components/immich/translations/ko.json +18 -0
  186. homeassistant/components/immich/translations/sv.json +5 -1
  187. homeassistant/components/incomfort/translations/ko.json +13 -0
  188. homeassistant/components/intellifire/translations/ko.json +8 -0
  189. homeassistant/components/iometer/translations/ko.json +11 -0
  190. homeassistant/components/iotty/translations/ko.json +11 -0
  191. homeassistant/components/iskra/translations/ko.json +22 -0
  192. homeassistant/components/ista_ecotrend/translations/ko.json +22 -0
  193. homeassistant/components/ituran/translations/sv.json +3 -0
  194. homeassistant/components/jewish_calendar/translations/ko.json +17 -0
  195. homeassistant/components/justnimbus/translations/ga.json +27 -0
  196. homeassistant/components/kitchen_sink/translations/ko.json +11 -0
  197. homeassistant/components/knocki/translations/ko.json +12 -0
  198. homeassistant/components/knx/manifest.json +1 -1
  199. homeassistant/components/kostal_plenticore/translations/ko.json +6 -0
  200. homeassistant/components/kulersky/translations/ko.json +7 -0
  201. homeassistant/components/lamarzocco/translations/ga.json +13 -0
  202. homeassistant/components/lamarzocco/translations/ko.json +26 -0
  203. homeassistant/components/lametric/translations/ko.json +3 -0
  204. homeassistant/components/lcn/translations/ko.json +58 -0
  205. homeassistant/components/lcn/translations/ru.json +1 -0
  206. homeassistant/components/leaone/translations/ga.json +8 -0
  207. homeassistant/components/leaone/translations/ko.json +11 -0
  208. homeassistant/components/leaone/translations/sk.json +2 -1
  209. homeassistant/components/leaone/translations/zh-Hans.json +2 -1
  210. homeassistant/components/lektrico/translations/ko.json +10 -0
  211. homeassistant/components/letpot/translations/ko.json +17 -0
  212. homeassistant/components/lg_netcast/translations/ko.json +12 -0
  213. homeassistant/components/linkplay/translations/ko.json +11 -0
  214. homeassistant/components/linkplay/translations/sv.json +1 -0
  215. homeassistant/components/litterrobot/translations/sv.json +2 -1
  216. homeassistant/components/local_file/translations/ko.json +9 -0
  217. homeassistant/components/luftdaten/translations/ru.json +7 -0
  218. homeassistant/components/lupusec/translations/ko.json +13 -0
  219. homeassistant/components/lutron/translations/ko.json +13 -0
  220. homeassistant/components/lyric/translations/ko.json +3 -0
  221. homeassistant/components/madvr/translations/ko.json +18 -0
  222. homeassistant/components/mastodon/translations/ko.json +10 -0
  223. homeassistant/components/matter/translations/ru.json +3 -0
  224. homeassistant/components/matter/translations/sv.json +3 -0
  225. homeassistant/components/matter/vacuum.py +0 -11
  226. homeassistant/components/mcp/translations/ko.json +16 -0
  227. homeassistant/components/mealie/todo.py +1 -0
  228. homeassistant/components/mealie/translations/ko.json +14 -0
  229. homeassistant/components/mealie/translations/sk.json +14 -1
  230. homeassistant/components/mealie/translations/sv.json +9 -1
  231. homeassistant/components/melcloud/translations/ko.json +5 -0
  232. homeassistant/components/metoffice/translations/ko.json +5 -0
  233. homeassistant/components/microbees/translations/ko.json +11 -0
  234. homeassistant/components/miele/translations/cs.json +24 -1
  235. homeassistant/components/miele/translations/de.json +5 -5
  236. homeassistant/components/miele/translations/he.json +4 -0
  237. homeassistant/components/miele/translations/ko.json +5 -0
  238. homeassistant/components/miele/translations/nl.json +22 -0
  239. homeassistant/components/miele/translations/sk.json +19 -2
  240. homeassistant/components/miele/translations/zh-Hans.json +12 -1
  241. homeassistant/components/mold_indicator/translations/ko.json +1 -0
  242. homeassistant/components/monarch_money/translations/ko.json +12 -0
  243. homeassistant/components/monzo/translations/ko.json +3 -0
  244. homeassistant/components/motionmount/translations/ga.json +9 -0
  245. homeassistant/components/motionmount/translations/ko.json +17 -0
  246. homeassistant/components/mpd/translations/ko.json +13 -0
  247. homeassistant/components/mqtt/strings.json +4 -0
  248. homeassistant/components/mqtt/translations/cs.json +5 -0
  249. homeassistant/components/mqtt/translations/de.json +4 -0
  250. homeassistant/components/mqtt/translations/en.json +4 -0
  251. homeassistant/components/mqtt/translations/he.json +127 -3
  252. homeassistant/components/mqtt/translations/ko.json +28 -0
  253. homeassistant/components/mqtt/translations/ru.json +36 -0
  254. homeassistant/components/mqtt/translations/sk.json +201 -4
  255. homeassistant/components/mqtt/translations/sv.json +18 -0
  256. homeassistant/components/mqtt/translations/zh-Hant.json +4 -0
  257. homeassistant/components/mqtt/vacuum.py +31 -5
  258. homeassistant/components/music_assistant/translations/he.json +2 -1
  259. homeassistant/components/myuplink/translations/ko.json +9 -0
  260. homeassistant/components/nam/translations/ko.json +5 -0
  261. homeassistant/components/nasweb/translations/ko.json +13 -0
  262. homeassistant/components/neato/translations/ko.json +3 -0
  263. homeassistant/components/nest/translations/ko.json +3 -0
  264. homeassistant/components/netatmo/translations/ko.json +3 -0
  265. homeassistant/components/netgear_lte/translations/ko.json +10 -0
  266. homeassistant/components/nextcloud/translations/ko.json +1 -1
  267. homeassistant/components/nice_go/translations/ko.json +16 -0
  268. homeassistant/components/niko_home_control/translations/ko.json +11 -0
  269. homeassistant/components/ntfy/translations/ko.json +38 -0
  270. homeassistant/components/nuki/translations/sv.json +1 -1
  271. homeassistant/components/nut/translations/ko.json +14 -0
  272. homeassistant/components/ohme/translations/ko.json +20 -0
  273. homeassistant/components/ollama/__init__.py +107 -34
  274. homeassistant/components/ollama/config_flow.py +1 -1
  275. homeassistant/components/ollama/strings.json +3 -3
  276. homeassistant/components/ollama/translations/cs.json +3 -3
  277. homeassistant/components/ollama/translations/de.json +3 -3
  278. homeassistant/components/ollama/translations/el.json +0 -5
  279. homeassistant/components/ollama/translations/en-GB.json +0 -5
  280. homeassistant/components/ollama/translations/en.json +3 -3
  281. homeassistant/components/ollama/translations/es.json +0 -5
  282. homeassistant/components/ollama/translations/et.json +3 -3
  283. homeassistant/components/ollama/translations/fr.json +0 -5
  284. homeassistant/components/ollama/translations/ga.json +0 -5
  285. homeassistant/components/ollama/translations/ja.json +0 -5
  286. homeassistant/components/ollama/translations/ko.json +31 -0
  287. homeassistant/components/ollama/translations/lt.json +0 -5
  288. homeassistant/components/ollama/translations/mk.json +0 -5
  289. homeassistant/components/ollama/translations/pt.json +0 -5
  290. homeassistant/components/ollama/translations/ru.json +3 -3
  291. homeassistant/components/ollama/translations/sk.json +3 -3
  292. homeassistant/components/ollama/translations/zh-Hans.json +3 -3
  293. homeassistant/components/ollama/translations/zh-Hant.json +3 -3
  294. homeassistant/components/ondilo_ico/translations/ko.json +3 -0
  295. homeassistant/components/onedrive/translations/ko.json +11 -0
  296. homeassistant/components/onewire/translations/ko.json +6 -0
  297. homeassistant/components/onkyo/translations/ko.json +16 -0
  298. homeassistant/components/open_router/strings.json +2 -2
  299. homeassistant/components/open_router/translations/cs.json +2 -2
  300. homeassistant/components/open_router/translations/de.json +2 -2
  301. homeassistant/components/open_router/translations/en-GB.json +0 -4
  302. homeassistant/components/open_router/translations/en.json +2 -2
  303. homeassistant/components/open_router/translations/es.json +0 -4
  304. homeassistant/components/open_router/translations/et.json +2 -2
  305. homeassistant/components/open_router/translations/fr.json +0 -4
  306. homeassistant/components/open_router/translations/ga.json +0 -4
  307. homeassistant/components/open_router/translations/ko.json +11 -0
  308. homeassistant/components/open_router/translations/ru.json +4 -0
  309. homeassistant/components/open_router/translations/sk.json +4 -0
  310. homeassistant/components/open_router/translations/zh-Hans.json +2 -2
  311. homeassistant/components/open_router/translations/zh-Hant.json +2 -2
  312. homeassistant/components/openai_conversation/__init__.py +93 -20
  313. homeassistant/components/openai_conversation/config_flow.py +1 -1
  314. homeassistant/components/openai_conversation/strings.json +3 -3
  315. homeassistant/components/openai_conversation/translations/cs.json +3 -3
  316. homeassistant/components/openai_conversation/translations/de.json +3 -3
  317. homeassistant/components/openai_conversation/translations/el.json +0 -5
  318. homeassistant/components/openai_conversation/translations/en-GB.json +0 -5
  319. homeassistant/components/openai_conversation/translations/en.json +3 -3
  320. homeassistant/components/openai_conversation/translations/es.json +0 -5
  321. homeassistant/components/openai_conversation/translations/et.json +3 -3
  322. homeassistant/components/openai_conversation/translations/fr.json +0 -5
  323. homeassistant/components/openai_conversation/translations/ga.json +0 -5
  324. homeassistant/components/openai_conversation/translations/it.json +0 -5
  325. homeassistant/components/openai_conversation/translations/ko.json +20 -0
  326. homeassistant/components/openai_conversation/translations/lt.json +0 -5
  327. homeassistant/components/openai_conversation/translations/mk.json +0 -5
  328. homeassistant/components/openai_conversation/translations/pt.json +0 -5
  329. homeassistant/components/openai_conversation/translations/ru.json +3 -3
  330. homeassistant/components/openai_conversation/translations/sk.json +3 -3
  331. homeassistant/components/openai_conversation/translations/zh-Hans.json +3 -3
  332. homeassistant/components/openai_conversation/translations/zh-Hant.json +3 -3
  333. homeassistant/components/openweathermap/translations/ru.json +2 -1
  334. homeassistant/components/opower/config_flow.py +141 -75
  335. homeassistant/components/opower/const.py +1 -0
  336. homeassistant/components/opower/coordinator.py +4 -3
  337. homeassistant/components/opower/manifest.json +1 -1
  338. homeassistant/components/opower/strings.json +33 -16
  339. homeassistant/components/opower/translations/bg.json +0 -10
  340. homeassistant/components/opower/translations/ca.json +0 -8
  341. homeassistant/components/opower/translations/cs.json +26 -9
  342. homeassistant/components/opower/translations/de.json +26 -9
  343. homeassistant/components/opower/translations/el.json +0 -25
  344. homeassistant/components/opower/translations/en-GB.json +0 -23
  345. homeassistant/components/opower/translations/en.json +26 -9
  346. homeassistant/components/opower/translations/es.json +0 -23
  347. homeassistant/components/opower/translations/et.json +0 -23
  348. homeassistant/components/opower/translations/fi.json +0 -2
  349. homeassistant/components/opower/translations/fr.json +0 -11
  350. homeassistant/components/opower/translations/fy.json +0 -12
  351. homeassistant/components/opower/translations/ga.json +0 -16
  352. homeassistant/components/opower/translations/he.json +0 -12
  353. homeassistant/components/opower/translations/hu.json +0 -9
  354. homeassistant/components/opower/translations/id.json +0 -3
  355. homeassistant/components/opower/translations/it.json +0 -2
  356. homeassistant/components/opower/translations/ja.json +0 -20
  357. homeassistant/components/opower/translations/ko.json +20 -2
  358. homeassistant/components/opower/translations/lt.json +0 -23
  359. homeassistant/components/opower/translations/nb.json +0 -6
  360. homeassistant/components/opower/translations/nl.json +0 -9
  361. homeassistant/components/opower/translations/pl.json +0 -6
  362. homeassistant/components/opower/translations/pt-BR.json +0 -2
  363. homeassistant/components/opower/translations/pt.json +0 -23
  364. homeassistant/components/opower/translations/ro.json +0 -2
  365. homeassistant/components/opower/translations/ru.json +0 -22
  366. homeassistant/components/opower/translations/sk.json +26 -9
  367. homeassistant/components/opower/translations/sl.json +0 -6
  368. homeassistant/components/opower/translations/sv.json +0 -21
  369. homeassistant/components/opower/translations/tr.json +0 -2
  370. homeassistant/components/opower/translations/uk.json +0 -2
  371. homeassistant/components/opower/translations/zh-Hans.json +0 -23
  372. homeassistant/components/opower/translations/zh-Hant.json +26 -9
  373. homeassistant/components/osoenergy/translations/sk.json +1 -0
  374. homeassistant/components/osoenergy/translations/zh-Hans.json +1 -0
  375. homeassistant/components/otbr/translations/ko.json +1 -1
  376. homeassistant/components/otp/translations/ko.json +11 -0
  377. homeassistant/components/overkiz/translations/ko.json +1 -0
  378. homeassistant/components/overseerr/translations/ko.json +15 -0
  379. homeassistant/components/ovo_energy/translations/ko.json +5 -0
  380. homeassistant/components/p1_monitor/translations/ko.json +2 -1
  381. homeassistant/components/palazzetti/translations/ko.json +11 -0
  382. homeassistant/components/paperless_ngx/translations/ko.json +25 -0
  383. homeassistant/components/peblar/translations/ko.json +26 -0
  384. homeassistant/components/pi_hole/translations/ko.json +1 -0
  385. homeassistant/components/playstation_network/translations/sk.json +33 -0
  386. homeassistant/components/plugwise/translations/ko.json +5 -0
  387. homeassistant/components/point/translations/ko.json +7 -0
  388. homeassistant/components/powerfox/translations/ko.json +23 -0
  389. homeassistant/components/probe_plus/translations/ko.json +11 -0
  390. homeassistant/components/proximity/translations/ga.json +19 -1
  391. homeassistant/components/pterodactyl/translations/ko.json +17 -0
  392. homeassistant/components/pyload/translations/ko.json +34 -0
  393. homeassistant/components/qbittorrent/translations/ko.json +10 -1
  394. homeassistant/components/qnap/translations/ga.json +12 -0
  395. homeassistant/components/rabbitair/translations/ko.json +12 -0
  396. homeassistant/components/rainbird/translations/ko.json +5 -0
  397. homeassistant/components/random/translations/cs.json +2 -0
  398. homeassistant/components/random/translations/sk.json +1 -0
  399. homeassistant/components/random/translations/zh-Hans.json +1 -0
  400. homeassistant/components/rehlko/translations/ko.json +17 -0
  401. homeassistant/components/reolink/__init__.py +1 -1
  402. homeassistant/components/reolink/diagnostics.py +2 -2
  403. homeassistant/components/reolink/manifest.json +1 -1
  404. homeassistant/components/reolink/sensor.py +1 -1
  405. homeassistant/components/reolink/translations/sv.json +28 -13
  406. homeassistant/components/rfxtrx/translations/ga.json +5 -0
  407. homeassistant/components/ring/translations/ko.json +5 -0
  408. homeassistant/components/risco/translations/he.json +8 -0
  409. homeassistant/components/romy/translations/ko.json +14 -0
  410. homeassistant/components/russound_rio/translations/ko.json +19 -0
  411. homeassistant/components/ruuvitag_ble/translations/ko.json +11 -0
  412. homeassistant/components/samsungtv/translations/ko.json +6 -0
  413. homeassistant/components/sanix/translations/ko.json +11 -0
  414. homeassistant/components/scrape/translations/cs.json +1 -0
  415. homeassistant/components/scrape/translations/ru.json +1 -0
  416. homeassistant/components/scrape/translations/sk.json +1 -0
  417. homeassistant/components/scrape/translations/zh-Hans.json +1 -0
  418. homeassistant/components/sensibo/translations/ko.json +15 -0
  419. homeassistant/components/sensirion_ble/translations/ga.json +8 -0
  420. homeassistant/components/sensirion_ble/translations/ko.json +11 -0
  421. homeassistant/components/sensor/translations/ko.json +3 -0
  422. homeassistant/components/sensor/translations/sv.json +1 -0
  423. homeassistant/components/sensorpush_cloud/translations/ko.json +12 -0
  424. homeassistant/components/sensoterra/translations/ko.json +18 -0
  425. homeassistant/components/senz/translations/ko.json +3 -0
  426. homeassistant/components/seventeentrack/translations/ko.json +12 -0
  427. homeassistant/components/sharkiq/translations/ko.json +6 -0
  428. homeassistant/components/shelly/translations/ko.json +8 -1
  429. homeassistant/components/shelly/translations/sv.json +10 -2
  430. homeassistant/components/sky_remote/translations/ko.json +11 -0
  431. homeassistant/components/slide_local/translations/ko.json +18 -0
  432. homeassistant/components/sma/translations/ko.json +12 -0
  433. homeassistant/components/smappee/translations/ko.json +3 -0
  434. homeassistant/components/smarla/translations/ko.json +11 -0
  435. homeassistant/components/smartthings/translations/ko.json +209 -4
  436. homeassistant/components/smarty/translations/ko.json +11 -0
  437. homeassistant/components/smlight/translations/ko.json +15 -0
  438. homeassistant/components/snoo/translations/ko.json +12 -0
  439. homeassistant/components/solarlog/translations/ko.json +15 -0
  440. homeassistant/components/sonos/manifest.json +1 -1
  441. homeassistant/components/spotify/translations/ko.json +3 -0
  442. homeassistant/components/sql/translations/cs.json +1 -0
  443. homeassistant/components/sql/translations/sk.json +1 -0
  444. homeassistant/components/statistics/translations/ko.json +9 -0
  445. homeassistant/components/stiebel_eltron/translations/ko.json +12 -0
  446. homeassistant/components/streamlabswater/translations/ko.json +9 -0
  447. homeassistant/components/switch_as_x/translations/ga.json +24 -0
  448. homeassistant/components/switchbot/manifest.json +1 -1
  449. homeassistant/components/switcher_kis/translations/ko.json +12 -0
  450. homeassistant/components/system_bridge/translations/ko.json +5 -0
  451. homeassistant/components/tailwind/translations/ko.json +1 -0
  452. homeassistant/components/technove/translations/ko.json +11 -0
  453. homeassistant/components/tedee/translations/ko.json +16 -0
  454. homeassistant/components/telegram_bot/translations/ko.json +19 -0
  455. homeassistant/components/template/strings.json +1 -1
  456. homeassistant/components/template/translations/cs.json +25 -9
  457. homeassistant/components/template/translations/de.json +1 -1
  458. homeassistant/components/template/translations/en-GB.json +1 -2
  459. homeassistant/components/template/translations/en.json +1 -1
  460. homeassistant/components/template/translations/es.json +1 -2
  461. homeassistant/components/template/translations/et.json +1 -1
  462. homeassistant/components/template/translations/fr.json +1 -2
  463. homeassistant/components/template/translations/ga.json +7 -2
  464. homeassistant/components/template/translations/he.json +15 -3
  465. homeassistant/components/template/translations/ko.json +106 -1
  466. homeassistant/components/template/translations/nl.json +1 -0
  467. homeassistant/components/template/translations/ru.json +35 -5
  468. homeassistant/components/template/translations/sk.json +319 -41
  469. homeassistant/components/template/translations/sv.json +4 -0
  470. homeassistant/components/template/translations/zh-Hans.json +16 -1
  471. homeassistant/components/template/translations/zh-Hant.json +1 -1
  472. homeassistant/components/tesla_fleet/translations/ko.json +9 -0
  473. homeassistant/components/teslemetry/translations/ko.json +30 -0
  474. homeassistant/components/tessie/translations/ga.json +29 -0
  475. homeassistant/components/tessie/translations/ko.json +5 -0
  476. homeassistant/components/thethingsnetwork/translations/ko.json +3 -1
  477. homeassistant/components/tilt_pi/translations/ko.json +11 -0
  478. homeassistant/components/time_date/translations/ga.json +3 -0
  479. homeassistant/components/toon/translations/ko.json +3 -0
  480. homeassistant/components/totalconnect/translations/ko.json +3 -0
  481. homeassistant/components/touchline_sl/translations/ko.json +12 -0
  482. homeassistant/components/tplink/translations/ko.json +29 -0
  483. homeassistant/components/traccar_server/translations/ko.json +20 -0
  484. homeassistant/components/trafikverket_camera/translations/ko.json +11 -0
  485. homeassistant/components/trafikverket_train/translations/ko.json +5 -0
  486. homeassistant/components/trafikverket_weatherstation/translations/ko.json +5 -0
  487. homeassistant/components/transmission/translations/ko.json +1 -0
  488. homeassistant/components/trend/translations/ko.json +9 -0
  489. homeassistant/components/triggercmd/translations/ko.json +11 -0
  490. homeassistant/components/tuya/__init__.py +15 -0
  491. homeassistant/components/tuya/sensor.py +7 -0
  492. homeassistant/components/tuya/translations/sk.json +6 -0
  493. homeassistant/components/tuya/translations/sv.json +33 -0
  494. homeassistant/components/tuya/vacuum.py +1 -15
  495. homeassistant/components/unifiprotect/translations/ko.json +3 -0
  496. homeassistant/components/unifiprotect/translations/ru.json +5 -1
  497. homeassistant/components/uptime_kuma/translations/ko.json +30 -0
  498. homeassistant/components/uptime_kuma/translations/sk.json +3 -1
  499. homeassistant/components/uptime_kuma/translations/sv.json +1 -0
  500. homeassistant/components/vacuum/__init__.py +12 -2
  501. homeassistant/components/vallox/translations/ru.json +5 -0
  502. homeassistant/components/velbus/translations/ko.json +14 -0
  503. homeassistant/components/velux/translations/ko.json +15 -0
  504. homeassistant/components/vesync/translations/ko.json +6 -0
  505. homeassistant/components/vodafone_station/translations/ko.json +7 -0
  506. homeassistant/components/volvo/translations/ko.json +11 -0
  507. homeassistant/components/volvo/translations/sv.json +21 -0
  508. homeassistant/components/waze_travel_time/translations/ru.json +10 -0
  509. homeassistant/components/weatherflow_cloud/translations/sk.json +27 -0
  510. homeassistant/components/weatherflow_cloud/translations/sv.json +9 -0
  511. homeassistant/components/webdav/translations/ko.json +12 -0
  512. homeassistant/components/webmin/translations/ko.json +14 -0
  513. homeassistant/components/weheat/translations/ko.json +11 -0
  514. homeassistant/components/whirlpool/translations/ko.json +5 -0
  515. homeassistant/components/whois/translations/ru.json +1 -0
  516. homeassistant/components/withings/translations/ko.json +3 -0
  517. homeassistant/components/wmspro/translations/ko.json +11 -0
  518. homeassistant/components/workday/manifest.json +1 -1
  519. homeassistant/components/worldclock/translations/ko.json +11 -0
  520. homeassistant/components/xbox/translations/ko.json +3 -0
  521. homeassistant/components/xiaomi_ble/translations/ga.json +11 -1
  522. homeassistant/components/xiaomi_ble/translations/ko.json +6 -0
  523. homeassistant/components/yale/manifest.json +1 -1
  524. homeassistant/components/yale/translations/ko.json +11 -0
  525. homeassistant/components/yale_smart_alarm/translations/ko.json +6 -0
  526. homeassistant/components/yolink/translations/ko.json +3 -0
  527. homeassistant/components/zha/manifest.json +1 -1
  528. homeassistant/components/zha/translations/ga.json +3 -0
  529. homeassistant/components/zha/translations/ru.json +6 -0
  530. homeassistant/components/zha/translations/sk.json +12 -0
  531. homeassistant/components/zimi/translations/ko.json +18 -0
  532. homeassistant/components/zwave_js/translations/cs.json +1 -0
  533. homeassistant/components/zwave_js/translations/ko.json +20 -0
  534. homeassistant/components/zwave_js/translations/ru.json +1 -0
  535. homeassistant/components/zwave_js/translations/sk.json +1 -0
  536. homeassistant/components/zwave_js/translations/zh-Hans.json +1 -0
  537. homeassistant/const.py +1 -1
  538. homeassistant/helpers/template.py +2 -2
  539. homeassistant/helpers/update_coordinator.py +1 -1
  540. homeassistant/package_constraints.txt +3 -3
  541. {homeassistant-2025.8.0b3.dist-info → homeassistant-2025.8.0b5.dist-info}/METADATA +2 -2
  542. {homeassistant-2025.8.0b3.dist-info → homeassistant-2025.8.0b5.dist-info}/RECORD +547 -459
  543. {homeassistant-2025.8.0b3.dist-info → homeassistant-2025.8.0b5.dist-info}/WHEEL +0 -0
  544. {homeassistant-2025.8.0b3.dist-info → homeassistant-2025.8.0b5.dist-info}/entry_points.txt +0 -0
  545. {homeassistant-2025.8.0b3.dist-info → homeassistant-2025.8.0b5.dist-info}/licenses/LICENSE.md +0 -0
  546. {homeassistant-2025.8.0b3.dist-info → homeassistant-2025.8.0b5.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  547. {homeassistant-2025.8.0b3.dist-info → homeassistant-2025.8.0b5.dist-info}/top_level.txt +0 -0
@@ -7,6 +7,12 @@
7
7
  "cannot_connect": "\uc5f0\uacb0\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4"
8
8
  },
9
9
  "step": {
10
+ "reconfigure": {
11
+ "data": {
12
+ "host": "\ud638\uc2a4\ud2b8",
13
+ "port": "\ud3ec\ud2b8"
14
+ }
15
+ },
10
16
  "user": {
11
17
  "data": {
12
18
  "host": "\ud638\uc2a4\ud2b8",
@@ -0,0 +1,16 @@
1
+ {
2
+ "config": {
3
+ "step": {
4
+ "eiscp_discovery": {
5
+ "data": {
6
+ "device": "\uae30\uae30"
7
+ }
8
+ },
9
+ "manual": {
10
+ "data": {
11
+ "host": "\ud638\uc2a4\ud2b8"
12
+ }
13
+ }
14
+ }
15
+ }
16
+ }
@@ -52,9 +52,9 @@
52
52
  }
53
53
  },
54
54
  "initiate_flow": {
55
- "user": "Add Generate data with AI service"
55
+ "user": "Add AI task"
56
56
  },
57
- "entry_type": "Generate data with AI service",
57
+ "entry_type": "AI task",
58
58
  "abort": {
59
59
  "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]",
60
60
  "unknown": "[%key:common::config_flow::error::unknown%]"
@@ -24,9 +24,9 @@
24
24
  "cannot_connect": "Nepoda\u0159ilo se p\u0159ipojit",
25
25
  "unknown": "Neo\u010dek\u00e1van\u00e1 chyba"
26
26
  },
27
- "entry_type": "Generovat data pomoc\u00ed slu\u017eby AI",
27
+ "entry_type": "\u00daloha AI",
28
28
  "initiate_flow": {
29
- "user": "P\u0159idat \"Generovat data pomoc\u00ed slu\u017eby AI\""
29
+ "user": "P\u0159idat \u00falohu AI"
30
30
  },
31
31
  "step": {
32
32
  "user": {
@@ -24,9 +24,9 @@
24
24
  "cannot_connect": "Verbindung fehlgeschlagen",
25
25
  "unknown": "Unerwarteter Fehler"
26
26
  },
27
- "entry_type": "Dienst: Daten mit KI generieren",
27
+ "entry_type": "KI-Aufgabe",
28
28
  "initiate_flow": {
29
- "user": "Dienst \u201eDaten mit KI generieren\u201c hinzuf\u00fcgen"
29
+ "user": "KI-Aufgabe hinzuf\u00fcgen"
30
30
  },
31
31
  "step": {
32
32
  "user": {
@@ -24,10 +24,6 @@
24
24
  "cannot_connect": "Failed to connect",
25
25
  "unknown": "Unexpected error"
26
26
  },
27
- "entry_type": "Generate data with AI service",
28
- "initiate_flow": {
29
- "user": "Add Generate data with AI service"
30
- },
31
27
  "step": {
32
28
  "user": {
33
29
  "data": {
@@ -24,9 +24,9 @@
24
24
  "cannot_connect": "Failed to connect",
25
25
  "unknown": "Unexpected error"
26
26
  },
27
- "entry_type": "Generate data with AI service",
27
+ "entry_type": "AI task",
28
28
  "initiate_flow": {
29
- "user": "Add Generate data with AI service"
29
+ "user": "Add AI task"
30
30
  },
31
31
  "step": {
32
32
  "user": {
@@ -24,10 +24,6 @@
24
24
  "cannot_connect": "No se pudo conectar",
25
25
  "unknown": "Error inesperado"
26
26
  },
27
- "entry_type": "Generar datos con servicio de IA",
28
- "initiate_flow": {
29
- "user": "A\u00f1adir Generar datos con servicio de IA"
30
- },
31
27
  "step": {
32
28
  "user": {
33
29
  "data": {
@@ -24,9 +24,9 @@
24
24
  "cannot_connect": "\u00dchendamine nurjus",
25
25
  "unknown": "Ootamatu t\u00f5rge"
26
26
  },
27
- "entry_type": "Andmete loomine tehisintellekti teenusega",
27
+ "entry_type": "AI \u00fclesanne",
28
28
  "initiate_flow": {
29
- "user": "Andmete loomise lisamine AI-teenusega"
29
+ "user": "AI \u00fclesande lisamine"
30
30
  },
31
31
  "step": {
32
32
  "user": {
@@ -24,10 +24,6 @@
24
24
  "cannot_connect": "\u00c9chec de connexion",
25
25
  "unknown": "Erreur inattendue"
26
26
  },
27
- "entry_type": "Service de g\u00e9n\u00e9ration de donn\u00e9es avec l'IA",
28
- "initiate_flow": {
29
- "user": "Ajouter un service de g\u00e9n\u00e9ration de donn\u00e9es avec l'IA"
30
- },
31
27
  "step": {
32
28
  "user": {
33
29
  "data": {
@@ -10,10 +10,6 @@
10
10
  },
11
11
  "config_subentries": {
12
12
  "ai_task_data": {
13
- "entry_type": "Gin sonra\u00ed le seirbh\u00eds AI",
14
- "initiate_flow": {
15
- "user": "Cuir sonra\u00ed a ghini\u00faint le seirbh\u00eds AI leis"
16
- },
17
13
  "step": {
18
14
  "user": {
19
15
  "data": {
@@ -0,0 +1,11 @@
1
+ {
2
+ "config": {
3
+ "step": {
4
+ "user": {
5
+ "data": {
6
+ "api_key": "API \ud0a4"
7
+ }
8
+ }
9
+ }
10
+ }
11
+ }
@@ -20,6 +20,10 @@
20
20
  },
21
21
  "config_subentries": {
22
22
  "conversation": {
23
+ "abort": {
24
+ "cannot_connect": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f",
25
+ "unknown": "\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430"
26
+ },
23
27
  "entry_type": "\u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430",
24
28
  "initiate_flow": {
25
29
  "user": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443"
@@ -24,6 +24,10 @@
24
24
  "cannot_connect": "Nepodarilo sa pripoji\u0165",
25
25
  "unknown": "Neo\u010dak\u00e1van\u00e1 chyba"
26
26
  },
27
+ "entry_type": "\u00daloha AI",
28
+ "initiate_flow": {
29
+ "user": "Pridanie \u00falohy AI"
30
+ },
27
31
  "step": {
28
32
  "user": {
29
33
  "data": {
@@ -24,9 +24,9 @@
24
24
  "cannot_connect": "\u8fde\u63a5\u5931\u8d25",
25
25
  "unknown": "\u610f\u5916\u9519\u8bef"
26
26
  },
27
- "entry_type": "\u4f7f\u7528 AI \u670d\u52a1\u751f\u6210\u6570\u636e",
27
+ "entry_type": "\u4eba\u5de5\u667a\u80fd\u4efb\u52a1",
28
28
  "initiate_flow": {
29
- "user": "\u6dfb\u52a0\u4f7f\u7528 AI \u670d\u52a1\u751f\u6210\u6570\u636e"
29
+ "user": "\u6dfb\u52a0\u4eba\u5de5\u667a\u80fd\u4efb\u52a1"
30
30
  },
31
31
  "step": {
32
32
  "user": {
@@ -24,9 +24,9 @@
24
24
  "cannot_connect": "\u9023\u7dda\u5931\u6557",
25
25
  "unknown": "\u672a\u9810\u671f\u932f\u8aa4"
26
26
  },
27
- "entry_type": "AI \u751f\u6210\u8cc7\u6599\u670d\u52d9",
27
+ "entry_type": "AI \u4efb\u52d9",
28
28
  "initiate_flow": {
29
- "user": "\u65b0\u589e AI \u751f\u6210\u8cc7\u6599\u670d\u52d9"
29
+ "user": "\u65b0\u589e AI \u4efb\u52d9"
30
30
  },
31
31
  "step": {
32
32
  "user": {
@@ -272,11 +272,15 @@ async def async_update_options(hass: HomeAssistant, entry: OpenAIConfigEntry) ->
272
272
  async def async_migrate_integration(hass: HomeAssistant) -> None:
273
273
  """Migrate integration entry structure."""
274
274
 
275
- entries = hass.config_entries.async_entries(DOMAIN)
275
+ # Make sure we get enabled config entries first
276
+ entries = sorted(
277
+ hass.config_entries.async_entries(DOMAIN),
278
+ key=lambda e: e.disabled_by is not None,
279
+ )
276
280
  if not any(entry.version == 1 for entry in entries):
277
281
  return
278
282
 
279
- api_keys_entries: dict[str, ConfigEntry] = {}
283
+ api_keys_entries: dict[str, tuple[ConfigEntry, bool]] = {}
280
284
  entity_registry = er.async_get(hass)
281
285
  device_registry = dr.async_get(hass)
282
286
 
@@ -290,30 +294,61 @@ async def async_migrate_integration(hass: HomeAssistant) -> None:
290
294
  )
291
295
  if entry.data[CONF_API_KEY] not in api_keys_entries:
292
296
  use_existing = True
293
- api_keys_entries[entry.data[CONF_API_KEY]] = entry
297
+ all_disabled = all(
298
+ e.disabled_by is not None
299
+ for e in entries
300
+ if e.data[CONF_API_KEY] == entry.data[CONF_API_KEY]
301
+ )
302
+ api_keys_entries[entry.data[CONF_API_KEY]] = (entry, all_disabled)
294
303
 
295
- parent_entry = api_keys_entries[entry.data[CONF_API_KEY]]
304
+ parent_entry, all_disabled = api_keys_entries[entry.data[CONF_API_KEY]]
296
305
 
297
306
  hass.config_entries.async_add_subentry(parent_entry, subentry)
298
- conversation_entity = entity_registry.async_get_entity_id(
307
+ conversation_entity_id = entity_registry.async_get_entity_id(
299
308
  "conversation",
300
309
  DOMAIN,
301
310
  entry.entry_id,
302
311
  )
303
- if conversation_entity is not None:
312
+ device = device_registry.async_get_device(
313
+ identifiers={(DOMAIN, entry.entry_id)}
314
+ )
315
+
316
+ if conversation_entity_id is not None:
317
+ conversation_entity_entry = entity_registry.entities[conversation_entity_id]
318
+ entity_disabled_by = conversation_entity_entry.disabled_by
319
+ if (
320
+ entity_disabled_by is er.RegistryEntryDisabler.CONFIG_ENTRY
321
+ and not all_disabled
322
+ ):
323
+ # Device and entity registries don't update the disabled_by flag
324
+ # when moving a device or entity from one config entry to another,
325
+ # so we need to do it manually.
326
+ entity_disabled_by = (
327
+ er.RegistryEntryDisabler.DEVICE
328
+ if device
329
+ else er.RegistryEntryDisabler.USER
330
+ )
304
331
  entity_registry.async_update_entity(
305
- conversation_entity,
332
+ conversation_entity_id,
306
333
  config_entry_id=parent_entry.entry_id,
307
334
  config_subentry_id=subentry.subentry_id,
335
+ disabled_by=entity_disabled_by,
308
336
  new_unique_id=subentry.subentry_id,
309
337
  )
310
338
 
311
- device = device_registry.async_get_device(
312
- identifiers={(DOMAIN, entry.entry_id)}
313
- )
314
339
  if device is not None:
340
+ # Device and entity registries don't update the disabled_by flag when
341
+ # moving a device or entity from one config entry to another, so we
342
+ # need to do it manually.
343
+ device_disabled_by = device.disabled_by
344
+ if (
345
+ device.disabled_by is dr.DeviceEntryDisabler.CONFIG_ENTRY
346
+ and not all_disabled
347
+ ):
348
+ device_disabled_by = dr.DeviceEntryDisabler.USER
315
349
  device_registry.async_update_device(
316
350
  device.id,
351
+ disabled_by=device_disabled_by,
317
352
  new_identifiers={(DOMAIN, subentry.subentry_id)},
318
353
  add_config_subentry_id=subentry.subentry_id,
319
354
  add_config_entry_id=parent_entry.entry_id,
@@ -333,12 +368,13 @@ async def async_migrate_integration(hass: HomeAssistant) -> None:
333
368
  if not use_existing:
334
369
  await hass.config_entries.async_remove(entry.entry_id)
335
370
  else:
371
+ _add_ai_task_subentry(hass, entry)
336
372
  hass.config_entries.async_update_entry(
337
373
  entry,
338
374
  title=DEFAULT_NAME,
339
375
  options={},
340
376
  version=2,
341
- minor_version=2,
377
+ minor_version=4,
342
378
  )
343
379
 
344
380
 
@@ -365,19 +401,56 @@ async def async_migrate_entry(hass: HomeAssistant, entry: OpenAIConfigEntry) ->
365
401
  hass.config_entries.async_update_entry(entry, minor_version=2)
366
402
 
367
403
  if entry.version == 2 and entry.minor_version == 2:
368
- hass.config_entries.async_add_subentry(
369
- entry,
370
- ConfigSubentry(
371
- data=MappingProxyType(RECOMMENDED_AI_TASK_OPTIONS),
372
- subentry_type="ai_task_data",
373
- title=DEFAULT_AI_TASK_NAME,
374
- unique_id=None,
375
- ),
376
- )
404
+ _add_ai_task_subentry(hass, entry)
377
405
  hass.config_entries.async_update_entry(entry, minor_version=3)
378
406
 
407
+ if entry.version == 2 and entry.minor_version == 3:
408
+ # Fix migration where the disabled_by flag was not set correctly.
409
+ # We can currently only correct this for enabled config entries,
410
+ # because migration does not run for disabled config entries. This
411
+ # is asserted in tests, and if that behavior is changed, we should
412
+ # correct also disabled config entries.
413
+ device_registry = dr.async_get(hass)
414
+ entity_registry = er.async_get(hass)
415
+ devices = dr.async_entries_for_config_entry(device_registry, entry.entry_id)
416
+ entity_entries = er.async_entries_for_config_entry(
417
+ entity_registry, entry.entry_id
418
+ )
419
+ if entry.disabled_by is None:
420
+ # If the config entry is not disabled, we need to set the disabled_by
421
+ # flag on devices to USER, and on entities to DEVICE, if they are set
422
+ # to CONFIG_ENTRY.
423
+ for device in devices:
424
+ if device.disabled_by is not dr.DeviceEntryDisabler.CONFIG_ENTRY:
425
+ continue
426
+ device_registry.async_update_device(
427
+ device.id,
428
+ disabled_by=dr.DeviceEntryDisabler.USER,
429
+ )
430
+ for entity in entity_entries:
431
+ if entity.disabled_by is not er.RegistryEntryDisabler.CONFIG_ENTRY:
432
+ continue
433
+ entity_registry.async_update_entity(
434
+ entity.entity_id,
435
+ disabled_by=er.RegistryEntryDisabler.DEVICE,
436
+ )
437
+ hass.config_entries.async_update_entry(entry, minor_version=4)
438
+
379
439
  LOGGER.debug(
380
440
  "Migration to version %s:%s successful", entry.version, entry.minor_version
381
441
  )
382
442
 
383
443
  return True
444
+
445
+
446
+ def _add_ai_task_subentry(hass: HomeAssistant, entry: OpenAIConfigEntry) -> None:
447
+ """Add AI Task subentry to the config entry."""
448
+ hass.config_entries.async_add_subentry(
449
+ entry,
450
+ ConfigSubentry(
451
+ data=MappingProxyType(RECOMMENDED_AI_TASK_OPTIONS),
452
+ subentry_type="ai_task_data",
453
+ title=DEFAULT_AI_TASK_NAME,
454
+ unique_id=None,
455
+ ),
456
+ )
@@ -98,7 +98,7 @@ class OpenAIConfigFlow(ConfigFlow, domain=DOMAIN):
98
98
  """Handle a config flow for OpenAI Conversation."""
99
99
 
100
100
  VERSION = 2
101
- MINOR_VERSION = 3
101
+ MINOR_VERSION = 4
102
102
 
103
103
  async def async_step_user(
104
104
  self, user_input: dict[str, Any] | None = None
@@ -73,10 +73,10 @@
73
73
  },
74
74
  "ai_task_data": {
75
75
  "initiate_flow": {
76
- "user": "Add Generate data with AI service",
77
- "reconfigure": "Reconfigure Generate data with AI service"
76
+ "user": "Add AI task",
77
+ "reconfigure": "Reconfigure AI task"
78
78
  },
79
- "entry_type": "Generate data with AI service",
79
+ "entry_type": "AI task",
80
80
  "step": {
81
81
  "init": {
82
82
  "data": {
@@ -22,13 +22,13 @@
22
22
  "entry_not_loaded": "Nelze p\u0159id\u00e1vat polo\u017eky, pokud je nastaven\u00ed zak\u00e1z\u00e1no.",
23
23
  "reconfigure_successful": "P\u0159enastaven\u00ed bylo \u00fasp\u011b\u0161n\u00e9"
24
24
  },
25
- "entry_type": "Generovat data pomoc\u00ed slu\u017eby AI",
25
+ "entry_type": "\u00daloha AI",
26
26
  "error": {
27
27
  "model_not_supported": "Tento model nen\u00ed podporov\u00e1n, vyberte jin\u00fd model"
28
28
  },
29
29
  "initiate_flow": {
30
- "reconfigure": "P\u0159enastavit \"Generovat data pomoc\u00ed slu\u017eby AI\"",
31
- "user": "P\u0159idat \"Generovat data pomoc\u00ed slu\u017eby AI\""
30
+ "reconfigure": "P\u0159enastavit \u00falohu AI",
31
+ "user": "P\u0159idat \u00falohu AI"
32
32
  },
33
33
  "step": {
34
34
  "advanced": {
@@ -22,13 +22,13 @@
22
22
  "entry_not_loaded": "Es k\u00f6nnen keine Dinge hinzugef\u00fcgt werden, wenn die Konfiguration deaktiviert ist.",
23
23
  "reconfigure_successful": "Die Neukonfiguration war erfolgreich"
24
24
  },
25
- "entry_type": "Dienst: Daten mit KI generieren",
25
+ "entry_type": "KI-Aufgabe",
26
26
  "error": {
27
27
  "model_not_supported": "Dieses Modell wird nicht unterst\u00fctzt, bitte w\u00e4hle ein anderes Modell"
28
28
  },
29
29
  "initiate_flow": {
30
- "reconfigure": "Dienst \u201eDaten mit KI generieren\u201c neu konfigurieren",
31
- "user": "Dienst \u201eDaten mit KI generieren\u201c hinzuf\u00fcgen"
30
+ "reconfigure": "KI-Aufgabe neu konfigurieren",
31
+ "user": "KI-Aufgabe hinzuf\u00fcgen"
32
32
  },
33
33
  "step": {
34
34
  "advanced": {
@@ -22,14 +22,9 @@
22
22
  "entry_not_loaded": "\u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03c0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03c9\u03bd \u03cc\u03c3\u03bf \u03b7 \u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03c0\u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03b7.",
23
23
  "reconfigure_successful": "\u0397 \u03b5\u03ba \u03bd\u03ad\u03bf\u03c5 \u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7 \u03ae\u03c4\u03b1\u03bd \u03b5\u03c0\u03b9\u03c4\u03c5\u03c7\u03ae\u03c2"
24
24
  },
25
- "entry_type": "\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03bc\u03b5 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 \u03c4\u03b5\u03c7\u03bd\u03b7\u03c4\u03ae\u03c2 \u03bd\u03bf\u03b7\u03bc\u03bf\u03c3\u03cd\u03bd\u03b7\u03c2",
26
25
  "error": {
27
26
  "model_not_supported": "\u0391\u03c5\u03c4\u03cc \u03c4\u03bf \u03bc\u03bf\u03bd\u03c4\u03ad\u03bb\u03bf \u03b4\u03b5\u03bd \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03b5\u03c4\u03b1\u03b9, \u03c0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03ac\u03bb\u03bb\u03bf \u03bc\u03bf\u03bd\u03c4\u03ad\u03bb\u03bf"
28
27
  },
29
- "initiate_flow": {
30
- "reconfigure": "\u0395\u03c0\u03b1\u03bd\u03b1\u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7 \u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03bc\u03b5 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 \u03c4\u03b5\u03c7\u03bd\u03b7\u03c4\u03ae\u03c2 \u03bd\u03bf\u03b7\u03bc\u03bf\u03c3\u03cd\u03bd\u03b7\u03c2",
31
- "user": "\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u03bc\u03b5 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 \u03c4\u03b5\u03c7\u03bd\u03b7\u03c4\u03ae\u03c2 \u03bd\u03bf\u03b7\u03bc\u03bf\u03c3\u03cd\u03bd\u03b7\u03c2"
32
- },
33
28
  "step": {
34
29
  "advanced": {
35
30
  "data": {
@@ -22,14 +22,9 @@
22
22
  "entry_not_loaded": "Cannot add things while the configuration is disabled.",
23
23
  "reconfigure_successful": "Re-configuration was successful"
24
24
  },
25
- "entry_type": "Generate data with AI service",
26
25
  "error": {
27
26
  "model_not_supported": "This model is not supported, please select a different model"
28
27
  },
29
- "initiate_flow": {
30
- "reconfigure": "Reconfigure Generate data with AI service",
31
- "user": "Add Generate data with AI service"
32
- },
33
28
  "step": {
34
29
  "advanced": {
35
30
  "data": {
@@ -22,13 +22,13 @@
22
22
  "entry_not_loaded": "Cannot add things while the configuration is disabled.",
23
23
  "reconfigure_successful": "Re-configuration was successful"
24
24
  },
25
- "entry_type": "Generate data with AI service",
25
+ "entry_type": "AI task",
26
26
  "error": {
27
27
  "model_not_supported": "This model is not supported, please select a different model"
28
28
  },
29
29
  "initiate_flow": {
30
- "reconfigure": "Reconfigure Generate data with AI service",
31
- "user": "Add Generate data with AI service"
30
+ "reconfigure": "Reconfigure AI task",
31
+ "user": "Add AI task"
32
32
  },
33
33
  "step": {
34
34
  "advanced": {
@@ -22,14 +22,9 @@
22
22
  "entry_not_loaded": "No se pueden a\u00f1adir cosas mientras la configuraci\u00f3n est\u00e1 desactivada.",
23
23
  "reconfigure_successful": "Se volvi\u00f3 a configurar correctamente"
24
24
  },
25
- "entry_type": "Generar datos con servicio de IA",
26
25
  "error": {
27
26
  "model_not_supported": "Este modelo no es compatible, por favor, selecciona un modelo diferente"
28
27
  },
29
- "initiate_flow": {
30
- "reconfigure": "Volver a configurar Generar datos con servicio de IA",
31
- "user": "A\u00f1adir Generar datos con servicio de IA"
32
- },
33
28
  "step": {
34
29
  "advanced": {
35
30
  "data": {
@@ -22,13 +22,13 @@
22
22
  "entry_not_loaded": "Asju ei saa lisada kui konfiguratsioon on keelatud.",
23
23
  "reconfigure_successful": "\u00dcmberseadistamine \u00f5nnestus"
24
24
  },
25
- "entry_type": "Andmete loomine tehisintellekti teenusega",
25
+ "entry_type": "AI \u00fclesanne",
26
26
  "error": {
27
27
  "model_not_supported": "Seda mudelit ei toetata, vali m\u00f5ni muu mudel"
28
28
  },
29
29
  "initiate_flow": {
30
- "reconfigure": "Andmete loomine tehisintellekti teenusega uuesti seadistamine",
31
- "user": "Andmete loomise lisamine AI-teenusega"
30
+ "reconfigure": "AI \u00fclesande \u00fcmberseadistamine",
31
+ "user": "AI \u00fclesande lisamine"
32
32
  },
33
33
  "step": {
34
34
  "advanced": {
@@ -22,14 +22,9 @@
22
22
  "entry_not_loaded": "Impossible d'ajouter des \u00e9l\u00e9ments lorsque la configuration est d\u00e9sactiv\u00e9e.",
23
23
  "reconfigure_successful": "La reconfiguration a r\u00e9ussi"
24
24
  },
25
- "entry_type": "Service de g\u00e9n\u00e9ration de donn\u00e9es avec l'IA",
26
25
  "error": {
27
26
  "model_not_supported": "Ce mod\u00e8le n'est pas pris en charge, veuillez s\u00e9lectionner un autre mod\u00e8le"
28
27
  },
29
- "initiate_flow": {
30
- "reconfigure": "Reconfigurer le service de g\u00e9n\u00e9ration de donn\u00e9es avec l'IA",
31
- "user": "Ajouter un service de g\u00e9n\u00e9ration de donn\u00e9es avec l'IA"
32
- },
33
28
  "step": {
34
29
  "advanced": {
35
30
  "data": {
@@ -5,14 +5,9 @@
5
5
  "entry_not_loaded": "N\u00ed f\u00e9idir ruda\u00ed a chur leis agus an chumra\u00edocht d\u00edchumasaithe.",
6
6
  "reconfigure_successful": "D'\u00e9irigh leis an athchumr\u00fa"
7
7
  },
8
- "entry_type": "Gin sonra\u00ed le seirbh\u00eds AI",
9
8
  "error": {
10
9
  "model_not_supported": "N\u00ed thaca\u00edtear leis an tsamhail seo, roghnaigh samhail eile le do thoil."
11
10
  },
12
- "initiate_flow": {
13
- "reconfigure": "Athchumraigh Gin sonra\u00ed le seirbh\u00eds AI",
14
- "user": "Cuir sonra\u00ed a ghini\u00faint le seirbh\u00eds AI leis"
15
- },
16
11
  "step": {
17
12
  "advanced": {
18
13
  "data": {
@@ -22,14 +22,9 @@
22
22
  "entry_not_loaded": "Impossibile aggiungere elementi mentre la configurazione \u00e8 disattivata.",
23
23
  "reconfigure_successful": "La riconfigurazione \u00e8 stata completata con successo"
24
24
  },
25
- "entry_type": "Genera dati con il servizio AI",
26
25
  "error": {
27
26
  "model_not_supported": "Questo modello non \u00e8 supportato, seleziona un modello diverso"
28
27
  },
29
- "initiate_flow": {
30
- "reconfigure": "Riconfigura Genera dati con il servizio AI",
31
- "user": "Aggiungi Genera dati con il servizio AI"
32
- },
33
28
  "step": {
34
29
  "advanced": {
35
30
  "data": {
@@ -13,6 +13,26 @@
13
13
  }
14
14
  }
15
15
  },
16
+ "config_subentries": {
17
+ "ai_task_data": {
18
+ "step": {
19
+ "init": {
20
+ "data": {
21
+ "name": "\uc774\ub984"
22
+ }
23
+ }
24
+ }
25
+ },
26
+ "conversation": {
27
+ "step": {
28
+ "init": {
29
+ "data": {
30
+ "name": "\uc774\ub984"
31
+ }
32
+ }
33
+ }
34
+ }
35
+ },
16
36
  "services": {
17
37
  "generate_image": {
18
38
  "fields": {
@@ -22,14 +22,9 @@
22
22
  "entry_not_loaded": "Negalima prid\u0117ti dalyk\u0173, kol konfig\u016bracija i\u0161jungta.",
23
23
  "reconfigure_successful": "Pakartotinis konfig\u016bravimas buvo s\u0117kmingas"
24
24
  },
25
- "entry_type": "Generuokite duomenis naudodami dirbtinio intelekto paslaug\u0105",
26
25
  "error": {
27
26
  "model_not_supported": "\u0160is modelis nepalaikomas, pasirinkite kit\u0105 model\u012f"
28
27
  },
29
- "initiate_flow": {
30
- "reconfigure": "I\u0161 naujo konfig\u016bruoti duomen\u0173 generavim\u0105 naudojant dirbtinio intelekto paslaug\u0105",
31
- "user": "Prid\u0117ti duomen\u0173 generavim\u0105 naudojant dirbtinio intelekto paslaug\u0105"
32
- },
33
28
  "step": {
34
29
  "advanced": {
35
30
  "data": {
@@ -22,14 +22,9 @@
22
22
  "entry_not_loaded": "\u041d\u0435 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0441\u0435 \u0434\u043e\u0434\u0430\u0432\u0430\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u0438 \u0434\u043e\u0434\u0435\u043a\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0458\u0430\u0442\u0430 \u0435 \u043e\u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d\u0430.",
23
23
  "reconfigure_successful": "\u0420\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0458\u0430\u0442\u0430 \u0431\u0435\u0448\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u0430"
24
24
  },
25
- "entry_type": "\u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0430\u0458\u0442\u0435 \u043f\u043e\u0434\u0430\u0442\u043e\u0446\u0438 \u0441\u043e \u0443\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u0437\u0430 \u0432\u0435\u0448\u0442\u0430\u0447\u043a\u0430 \u0438\u043d\u0442\u0435\u043b\u0438\u0433\u0435\u043d\u0446\u0438\u0458\u0430",
26
25
  "error": {
27
26
  "model_not_supported": "\u041e\u0432\u043e\u0458 \u043c\u043e\u0434\u0435\u043b \u043d\u0435 \u0435 \u043f\u043e\u0434\u0434\u0440\u0436\u0430\u043d, \u0438\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0434\u0440\u0443\u0433 \u043c\u043e\u0434\u0435\u043b"
28
27
  },
29
- "initiate_flow": {
30
- "reconfigure": "\u0420\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u0458 \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0430\u0458 \u043f\u043e\u0434\u0430\u0442\u043e\u0446\u0438 \u0441\u043e \u0443\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u0437\u0430 \u0432\u0435\u0448\u0442\u0430\u0447\u043a\u0430 \u0438\u043d\u0442\u0435\u043b\u0438\u0433\u0435\u043d\u0446\u0438\u0458\u0430",
31
- "user": "\u0414\u043e\u0434\u0430\u0458 \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0430\u0458 \u043f\u043e\u0434\u0430\u0442\u043e\u0446\u0438 \u0441\u043e \u0443\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u0437\u0430 \u0432\u0435\u0448\u0442\u0430\u0447\u043a\u0430 \u0438\u043d\u0442\u0435\u043b\u0438\u0433\u0435\u043d\u0446\u0438\u0458\u0430"
32
- },
33
28
  "step": {
34
29
  "advanced": {
35
30
  "data": {