homeassistant 2025.7.0b1__py3-none-any.whl → 2025.7.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 (534) hide show
  1. homeassistant/components/ai_task/translations/fr.json +22 -1
  2. homeassistant/components/ai_task/translations/hu.json +22 -0
  3. homeassistant/components/ai_task/translations/it.json +22 -0
  4. homeassistant/components/ai_task/translations/ja.json +20 -0
  5. homeassistant/components/alexa_devices/manifest.json +1 -1
  6. homeassistant/components/alexa_devices/translations/cs.json +12 -1
  7. homeassistant/components/alexa_devices/translations/de.json +8 -0
  8. homeassistant/components/alexa_devices/translations/el.json +8 -0
  9. homeassistant/components/alexa_devices/translations/es.json +12 -1
  10. homeassistant/components/alexa_devices/translations/et.json +8 -0
  11. homeassistant/components/alexa_devices/translations/hu.json +27 -1
  12. homeassistant/components/alexa_devices/translations/it.json +29 -0
  13. homeassistant/components/alexa_devices/translations/ja.json +29 -0
  14. homeassistant/components/alexa_devices/translations/pt.json +12 -1
  15. homeassistant/components/alexa_devices/translations/sk.json +8 -0
  16. homeassistant/components/alexa_devices/translations/sv.json +8 -0
  17. homeassistant/components/alexa_devices/translations/zh-Hans.json +12 -1
  18. homeassistant/components/alexa_devices/translations/zh-Hant.json +8 -0
  19. homeassistant/components/altruist/translations/hu.json +51 -0
  20. homeassistant/components/altruist/translations/ja.json +50 -0
  21. homeassistant/components/anthropic/__init__.py +6 -0
  22. homeassistant/components/anthropic/translations/fr.json +37 -0
  23. homeassistant/components/anthropic/translations/hu.json +37 -0
  24. homeassistant/components/anthropic/translations/it.json +37 -0
  25. homeassistant/components/anthropic/translations/nl.json +2 -1
  26. homeassistant/components/assist_satellite/__init__.py +24 -6
  27. homeassistant/components/assist_satellite/services.yaml +18 -6
  28. homeassistant/components/assist_satellite/translations/fr.json +8 -0
  29. homeassistant/components/assist_satellite/translations/hu.json +38 -0
  30. homeassistant/components/assist_satellite/translations/it.json +8 -0
  31. homeassistant/components/assist_satellite/translations/ja.json +8 -0
  32. homeassistant/components/asuswrt/translations/nl.json +6 -0
  33. homeassistant/components/backup/translations/de.json +1 -1
  34. homeassistant/components/blue_current/translations/el.json +3 -1
  35. homeassistant/components/bluetooth/translations/el.json +3 -0
  36. homeassistant/components/climate/translations/hu.json +3 -0
  37. homeassistant/components/comelit/translations/de.json +1 -1
  38. homeassistant/components/counter/translations/sv.json +2 -2
  39. homeassistant/components/denonavr/translations/el.json +5 -0
  40. homeassistant/components/derivative/translations/fr.json +4 -0
  41. homeassistant/components/derivative/translations/hu.json +4 -0
  42. homeassistant/components/derivative/translations/it.json +4 -0
  43. homeassistant/components/devolo_home_control/translations/hu.json +21 -0
  44. homeassistant/components/devolo_home_control/translations/it.json +6 -0
  45. homeassistant/components/devolo_home_control/translations/nl.json +10 -0
  46. homeassistant/components/dsmr/sensor.py +8 -0
  47. homeassistant/components/ecovacs/translations/el.json +1 -0
  48. homeassistant/components/electric_kiwi/translations/hu.json +6 -0
  49. homeassistant/components/electric_kiwi/translations/ja.json +6 -0
  50. homeassistant/components/emoncms/translations/el.json +3 -0
  51. homeassistant/components/enphase_envoy/translations/hu.json +30 -0
  52. homeassistant/components/enphase_envoy/translations/it.json +27 -0
  53. homeassistant/components/enphase_envoy/translations/ja.json +27 -0
  54. homeassistant/components/enphase_envoy/translations/sv.json +4 -1
  55. homeassistant/components/ezviz/translations/hu.json +10 -0
  56. homeassistant/components/ezviz/translations/it.json +10 -0
  57. homeassistant/components/ezviz/translations/ja.json +10 -0
  58. homeassistant/components/ezviz/translations/sv.json +1 -1
  59. homeassistant/components/fitbit/translations/hu.json +6 -0
  60. homeassistant/components/fitbit/translations/ja.json +6 -0
  61. homeassistant/components/fritz/translations/nl.json +3 -0
  62. homeassistant/components/fronius/translations/el.json +14 -1
  63. homeassistant/components/fronius/translations/sv.json +2 -2
  64. homeassistant/components/frontend/manifest.json +1 -1
  65. homeassistant/components/geocaching/translations/hu.json +6 -0
  66. homeassistant/components/geocaching/translations/ja.json +6 -0
  67. homeassistant/components/google/translations/hu.json +6 -0
  68. homeassistant/components/google/translations/ja.json +6 -0
  69. homeassistant/components/google_assistant_sdk/translations/hu.json +6 -0
  70. homeassistant/components/google_assistant_sdk/translations/ja.json +11 -0
  71. homeassistant/components/google_drive/translations/hu.json +6 -0
  72. homeassistant/components/google_drive/translations/ja.json +6 -0
  73. homeassistant/components/google_generative_ai_conversation/__init__.py +15 -0
  74. homeassistant/components/google_generative_ai_conversation/conversation.py +0 -10
  75. homeassistant/components/google_generative_ai_conversation/translations/cs.json +28 -0
  76. homeassistant/components/google_generative_ai_conversation/translations/fr.json +82 -1
  77. homeassistant/components/google_generative_ai_conversation/translations/hu.json +69 -0
  78. homeassistant/components/google_generative_ai_conversation/translations/it.json +69 -0
  79. homeassistant/components/google_generative_ai_conversation/translations/ja.json +69 -0
  80. homeassistant/components/google_generative_ai_conversation/translations/nl.json +16 -0
  81. homeassistant/components/google_generative_ai_conversation/translations/pt.json +28 -0
  82. homeassistant/components/google_generative_ai_conversation/translations/sv.json +2 -0
  83. homeassistant/components/google_mail/translations/hu.json +6 -0
  84. homeassistant/components/google_mail/translations/ja.json +6 -0
  85. homeassistant/components/google_photos/translations/hu.json +6 -0
  86. homeassistant/components/google_photos/translations/ja.json +6 -0
  87. homeassistant/components/google_sheets/translations/hu.json +6 -0
  88. homeassistant/components/google_sheets/translations/ja.json +6 -0
  89. homeassistant/components/google_tasks/translations/hu.json +6 -0
  90. homeassistant/components/google_tasks/translations/ja.json +6 -0
  91. homeassistant/components/group/translations/pl.json +52 -2
  92. homeassistant/components/home_connect/translations/hu.json +6 -0
  93. homeassistant/components/home_connect/translations/ja.json +9 -0
  94. homeassistant/components/homeassistant/translations/fr.json +1 -0
  95. homeassistant/components/homeassistant/translations/hu.json +1 -0
  96. homeassistant/components/homeassistant/translations/it.json +1 -0
  97. homeassistant/components/homeassistant/translations/ja.json +1 -0
  98. homeassistant/components/homeassistant/translations/nl.json +1 -1
  99. homeassistant/components/homeassistant_hardware/firmware_config_flow.py +119 -7
  100. homeassistant/components/homeassistant_hardware/strings.json +3 -1
  101. homeassistant/components/homeassistant_hardware/translations/de.json +2 -0
  102. homeassistant/components/homeassistant_hardware/translations/el.json +1 -0
  103. homeassistant/components/homeassistant_hardware/translations/en-GB.json +1 -0
  104. homeassistant/components/homeassistant_hardware/translations/en.json +2 -0
  105. homeassistant/components/homeassistant_hardware/translations/es.json +1 -0
  106. homeassistant/components/homeassistant_hardware/translations/et.json +1 -0
  107. homeassistant/components/homeassistant_hardware/translations/fr.json +4 -0
  108. homeassistant/components/homeassistant_hardware/translations/hu.json +4 -0
  109. homeassistant/components/homeassistant_hardware/translations/it.json +6 -0
  110. homeassistant/components/homeassistant_hardware/translations/ja.json +4 -0
  111. homeassistant/components/homeassistant_hardware/translations/pt.json +1 -0
  112. homeassistant/components/homeassistant_hardware/translations/ru.json +1 -0
  113. homeassistant/components/homeassistant_hardware/translations/sk.json +1 -0
  114. homeassistant/components/homeassistant_hardware/translations/sv.json +1 -0
  115. homeassistant/components/homeassistant_hardware/translations/zh-Hans.json +1 -0
  116. homeassistant/components/homeassistant_hardware/translations/zh-Hant.json +1 -0
  117. homeassistant/components/homeassistant_sky_connect/config_flow.py +1 -1
  118. homeassistant/components/homeassistant_sky_connect/strings.json +6 -2
  119. homeassistant/components/homeassistant_sky_connect/translations/de.json +4 -0
  120. homeassistant/components/homeassistant_sky_connect/translations/el.json +2 -0
  121. homeassistant/components/homeassistant_sky_connect/translations/en-GB.json +2 -0
  122. homeassistant/components/homeassistant_sky_connect/translations/en.json +4 -0
  123. homeassistant/components/homeassistant_sky_connect/translations/es.json +2 -0
  124. homeassistant/components/homeassistant_sky_connect/translations/et.json +2 -0
  125. homeassistant/components/homeassistant_sky_connect/translations/fr.json +4 -0
  126. homeassistant/components/homeassistant_sky_connect/translations/hu.json +4 -0
  127. homeassistant/components/homeassistant_sky_connect/translations/it.json +4 -0
  128. homeassistant/components/homeassistant_sky_connect/translations/ja.json +4 -0
  129. homeassistant/components/homeassistant_sky_connect/translations/pt.json +2 -0
  130. homeassistant/components/homeassistant_sky_connect/translations/ru.json +2 -0
  131. homeassistant/components/homeassistant_sky_connect/translations/sk.json +2 -0
  132. homeassistant/components/homeassistant_sky_connect/translations/sv.json +2 -0
  133. homeassistant/components/homeassistant_sky_connect/translations/zh-Hans.json +2 -0
  134. homeassistant/components/homeassistant_sky_connect/translations/zh-Hant.json +2 -0
  135. homeassistant/components/homeassistant_yellow/strings.json +3 -1
  136. homeassistant/components/homeassistant_yellow/translations/bg.json +0 -1
  137. homeassistant/components/homeassistant_yellow/translations/cs.json +0 -1
  138. homeassistant/components/homeassistant_yellow/translations/de.json +2 -0
  139. homeassistant/components/homeassistant_yellow/translations/el.json +1 -0
  140. homeassistant/components/homeassistant_yellow/translations/en-GB.json +2 -1
  141. homeassistant/components/homeassistant_yellow/translations/en.json +3 -1
  142. homeassistant/components/homeassistant_yellow/translations/es.json +1 -0
  143. homeassistant/components/homeassistant_yellow/translations/et.json +1 -0
  144. homeassistant/components/homeassistant_yellow/translations/fr.json +2 -1
  145. homeassistant/components/homeassistant_yellow/translations/he.json +0 -1
  146. homeassistant/components/homeassistant_yellow/translations/hu.json +3 -1
  147. homeassistant/components/homeassistant_yellow/translations/id.json +0 -1
  148. homeassistant/components/homeassistant_yellow/translations/it.json +2 -1
  149. homeassistant/components/homeassistant_yellow/translations/ja.json +2 -1
  150. homeassistant/components/homeassistant_yellow/translations/lt.json +0 -1
  151. homeassistant/components/homeassistant_yellow/translations/pt.json +1 -0
  152. homeassistant/components/homeassistant_yellow/translations/ru.json +1 -0
  153. homeassistant/components/homeassistant_yellow/translations/sk.json +1 -0
  154. homeassistant/components/homeassistant_yellow/translations/sv.json +1 -1
  155. homeassistant/components/homeassistant_yellow/translations/tr.json +0 -1
  156. homeassistant/components/homeassistant_yellow/translations/zh-Hans.json +1 -0
  157. homeassistant/components/homeassistant_yellow/translations/zh-Hant.json +1 -0
  158. homeassistant/components/homee/translations/hu.json +25 -0
  159. homeassistant/components/homee/translations/ja.json +31 -1
  160. homeassistant/components/homewizard/translations/hu.json +19 -2
  161. homeassistant/components/homewizard/translations/sv.json +1 -1
  162. homeassistant/components/honeywell/__init__.py +8 -16
  163. homeassistant/components/honeywell/config_flow.py +6 -2
  164. homeassistant/components/honeywell/manifest.json +1 -1
  165. homeassistant/components/husqvarna_automower/button.py +3 -1
  166. homeassistant/components/husqvarna_automower/translations/hu.json +6 -0
  167. homeassistant/components/husqvarna_automower/translations/ja.json +6 -0
  168. homeassistant/components/imap/translations/fr.json +2 -0
  169. homeassistant/components/immich/translations/hu.json +5 -0
  170. homeassistant/components/immich/translations/ja.json +9 -0
  171. homeassistant/components/input_number/translations/sv.json +2 -2
  172. homeassistant/components/input_text/translations/sv.json +1 -1
  173. homeassistant/components/iotty/translations/hu.json +6 -0
  174. homeassistant/components/iotty/translations/ja.json +6 -0
  175. homeassistant/components/iron_os/manifest.json +1 -1
  176. homeassistant/components/ista_ecotrend/util.py +14 -14
  177. homeassistant/components/jellyfin/client_wrapper.py +1 -2
  178. homeassistant/components/jellyfin/coordinator.py +3 -0
  179. homeassistant/components/jellyfin/manifest.json +1 -2
  180. homeassistant/components/juicenet/translations/hu.json +8 -1
  181. homeassistant/components/juicenet/translations/it.json +8 -1
  182. homeassistant/components/juicenet/translations/ja.json +8 -1
  183. homeassistant/components/keenetic_ndms2/translations/hu.json +4 -0
  184. homeassistant/components/keenetic_ndms2/translations/it.json +4 -0
  185. homeassistant/components/keenetic_ndms2/translations/ja.json +4 -0
  186. homeassistant/components/knx/translations/ja.json +11 -0
  187. homeassistant/components/lamarzocco/entity.py +19 -1
  188. homeassistant/components/lamarzocco/number.py +0 -4
  189. homeassistant/components/lamarzocco/sensor.py +2 -4
  190. homeassistant/components/lametric/translations/hu.json +6 -0
  191. homeassistant/components/lametric/translations/ja.json +6 -0
  192. homeassistant/components/lifx/translations/el.json +2 -1
  193. homeassistant/components/litterrobot/translations/hu.json +4 -0
  194. homeassistant/components/litterrobot/translations/it.json +4 -0
  195. homeassistant/components/lyric/translations/hu.json +6 -0
  196. homeassistant/components/lyric/translations/ja.json +6 -0
  197. homeassistant/components/matter/translations/hu.json +32 -0
  198. homeassistant/components/matter/translations/ja.json +29 -0
  199. homeassistant/components/mcp/translations/hu.json +6 -0
  200. homeassistant/components/meater/translations/hu.json +12 -1
  201. homeassistant/components/microbees/translations/hu.json +6 -0
  202. homeassistant/components/microbees/translations/ja.json +6 -0
  203. homeassistant/components/miele/translations/hu.json +30 -1
  204. homeassistant/components/miele/translations/it.json +24 -1
  205. homeassistant/components/miele/translations/ja.json +29 -0
  206. homeassistant/components/minecraft_server/translations/sv.json +1 -1
  207. homeassistant/components/monzo/translations/hu.json +6 -0
  208. homeassistant/components/monzo/translations/ja.json +6 -0
  209. homeassistant/components/motioneye/translations/sv.json +1 -1
  210. homeassistant/components/mqtt/config_flow.py +34 -7
  211. homeassistant/components/mqtt/strings.json +11 -4
  212. homeassistant/components/mqtt/translations/bg.json +1 -3
  213. homeassistant/components/mqtt/translations/cs.json +21 -6
  214. homeassistant/components/mqtt/translations/de.json +23 -16
  215. homeassistant/components/mqtt/translations/el.json +11 -0
  216. homeassistant/components/mqtt/translations/en-GB.json +2 -6
  217. homeassistant/components/mqtt/translations/en.json +13 -6
  218. homeassistant/components/mqtt/translations/es.json +13 -6
  219. homeassistant/components/mqtt/translations/et.json +13 -6
  220. homeassistant/components/mqtt/translations/fr.json +38 -6
  221. homeassistant/components/mqtt/translations/fy.json +2 -5
  222. homeassistant/components/mqtt/translations/ga.json +2 -6
  223. homeassistant/components/mqtt/translations/he.json +2 -6
  224. homeassistant/components/mqtt/translations/hu.json +39 -6
  225. homeassistant/components/mqtt/translations/it.json +40 -0
  226. homeassistant/components/mqtt/translations/ja.json +39 -4
  227. homeassistant/components/mqtt/translations/lt.json +2 -6
  228. homeassistant/components/mqtt/translations/mk.json +1 -6
  229. homeassistant/components/mqtt/translations/nl.json +39 -7
  230. homeassistant/components/mqtt/translations/pt.json +4 -6
  231. homeassistant/components/mqtt/translations/ru.json +13 -6
  232. homeassistant/components/mqtt/translations/sk.json +13 -6
  233. homeassistant/components/mqtt/translations/sl.json +2 -6
  234. homeassistant/components/mqtt/translations/sv.json +13 -6
  235. homeassistant/components/mqtt/translations/tr.json +2 -6
  236. homeassistant/components/mqtt/translations/zh-Hans.json +13 -6
  237. homeassistant/components/mqtt/translations/zh-Hant.json +13 -6
  238. homeassistant/components/music_assistant/translations/hu.json +7 -0
  239. homeassistant/components/music_assistant/translations/ja.json +7 -0
  240. homeassistant/components/myuplink/translations/hu.json +6 -0
  241. homeassistant/components/myuplink/translations/ja.json +6 -0
  242. homeassistant/components/nam/translations/pl.json +9 -0
  243. homeassistant/components/neato/translations/hu.json +6 -0
  244. homeassistant/components/neato/translations/ja.json +6 -0
  245. homeassistant/components/nest/translations/hu.json +6 -0
  246. homeassistant/components/nest/translations/ja.json +6 -0
  247. homeassistant/components/netatmo/translations/hu.json +6 -0
  248. homeassistant/components/netatmo/translations/ja.json +6 -0
  249. homeassistant/components/nextcloud/translations/nl.json +3 -0
  250. homeassistant/components/nextdns/translations/fr.json +6 -0
  251. homeassistant/components/nextdns/translations/hu.json +14 -0
  252. homeassistant/components/nextdns/translations/ja.json +6 -0
  253. homeassistant/components/ntfy/translations/hu.json +112 -2
  254. homeassistant/components/ntfy/translations/it.json +82 -0
  255. homeassistant/components/ntfy/translations/ja.json +71 -0
  256. homeassistant/components/ntfy/translations/nl.json +18 -0
  257. homeassistant/components/ntfy/translations/sv.json +1 -0
  258. homeassistant/components/number/translations/sv.json +2 -2
  259. homeassistant/components/nut/config_flow.py +4 -2
  260. homeassistant/components/nut/translations/el.json +42 -0
  261. homeassistant/components/nzbget/translations/ja.json +5 -0
  262. homeassistant/components/ollama/__init__.py +6 -0
  263. homeassistant/components/ollama/translations/fr.json +33 -0
  264. homeassistant/components/ollama/translations/hu.json +33 -0
  265. homeassistant/components/ollama/translations/it.json +35 -0
  266. homeassistant/components/ollama/translations/ja.json +33 -0
  267. homeassistant/components/ollama/translations/sv.json +1 -0
  268. homeassistant/components/ondilo_ico/translations/hu.json +6 -0
  269. homeassistant/components/ondilo_ico/translations/ja.json +6 -0
  270. homeassistant/components/onedrive/translations/hu.json +6 -0
  271. homeassistant/components/onedrive/translations/ja.json +6 -0
  272. homeassistant/components/onewire/translations/sv.json +1 -1
  273. homeassistant/components/openai_conversation/__init__.py +6 -0
  274. homeassistant/components/openai_conversation/translations/fr.json +56 -0
  275. homeassistant/components/openai_conversation/translations/hu.json +56 -0
  276. homeassistant/components/openai_conversation/translations/it.json +56 -0
  277. homeassistant/components/openai_conversation/translations/ja.json +45 -0
  278. homeassistant/components/openai_conversation/translations/nl.json +13 -0
  279. homeassistant/components/openai_conversation/translations/sv.json +4 -0
  280. homeassistant/components/opentherm_gw/climate.py +12 -1
  281. homeassistant/components/opentherm_gw/strings.json +3 -0
  282. homeassistant/components/opentherm_gw/translations/de.json +3 -0
  283. homeassistant/components/opentherm_gw/translations/en.json +3 -0
  284. homeassistant/components/opentherm_gw/translations/ja.json +5 -0
  285. homeassistant/components/osoenergy/translations/nl.json +1 -0
  286. homeassistant/components/paperless_ngx/manifest.json +1 -1
  287. homeassistant/components/paperless_ngx/translations/hu.json +8 -4
  288. homeassistant/components/paperless_ngx/translations/ja.json +20 -0
  289. homeassistant/components/peblar/translations/el.json +12 -0
  290. homeassistant/components/pegel_online/translations/bg.json +1 -2
  291. homeassistant/components/pegel_online/translations/ca.json +1 -2
  292. homeassistant/components/pegel_online/translations/cs.json +1 -2
  293. homeassistant/components/pegel_online/translations/de.json +1 -1
  294. homeassistant/components/pegel_online/translations/el.json +1 -1
  295. homeassistant/components/pegel_online/translations/en-GB.json +1 -1
  296. homeassistant/components/pegel_online/translations/en.json +1 -1
  297. homeassistant/components/pegel_online/translations/es.json +1 -1
  298. homeassistant/components/pegel_online/translations/et.json +1 -1
  299. homeassistant/components/pegel_online/translations/fi.json +1 -2
  300. homeassistant/components/pegel_online/translations/fr.json +1 -2
  301. homeassistant/components/pegel_online/translations/hu.json +1 -1
  302. homeassistant/components/pegel_online/translations/id.json +1 -2
  303. homeassistant/components/pegel_online/translations/it.json +1 -2
  304. homeassistant/components/pegel_online/translations/ja.json +1 -2
  305. homeassistant/components/pegel_online/translations/ko.json +1 -2
  306. homeassistant/components/pegel_online/translations/lt.json +1 -2
  307. homeassistant/components/pegel_online/translations/lv.json +1 -2
  308. homeassistant/components/pegel_online/translations/nl.json +1 -2
  309. homeassistant/components/pegel_online/translations/pt.json +1 -2
  310. homeassistant/components/pegel_online/translations/ru.json +1 -1
  311. homeassistant/components/pegel_online/translations/sk.json +1 -1
  312. homeassistant/components/pegel_online/translations/sv.json +1 -1
  313. homeassistant/components/pegel_online/translations/tr.json +1 -2
  314. homeassistant/components/pegel_online/translations/zh-Hant.json +1 -1
  315. homeassistant/components/person/__init__.py +1 -2
  316. homeassistant/components/pi_hole/translations/fr.json +1 -0
  317. homeassistant/components/playstation_network/diagnostics.py +55 -0
  318. homeassistant/components/playstation_network/quality_scale.yaml +1 -1
  319. homeassistant/components/playstation_network/translations/fr.json +15 -0
  320. homeassistant/components/playstation_network/translations/hu.json +73 -0
  321. homeassistant/components/playstation_network/translations/it.json +73 -0
  322. homeassistant/components/playstation_network/translations/ja.json +44 -0
  323. homeassistant/components/playstation_network/translations/pl.json +73 -0
  324. homeassistant/components/playstation_network/translations/ru.json +1 -0
  325. homeassistant/components/playstation_network/translations/sv.json +2 -1
  326. homeassistant/components/plugwise/translations/sv.json +2 -2
  327. homeassistant/components/point/translations/hu.json +6 -0
  328. homeassistant/components/point/translations/ja.json +6 -0
  329. homeassistant/components/proximity/translations/bg.json +0 -3
  330. homeassistant/components/proximity/translations/ca.json +2 -27
  331. homeassistant/components/proximity/translations/cs.json +1 -25
  332. homeassistant/components/proximity/translations/el.json +1 -25
  333. homeassistant/components/proximity/translations/en-GB.json +4 -4
  334. homeassistant/components/proximity/translations/en.json +4 -4
  335. homeassistant/components/proximity/translations/et.json +1 -1
  336. homeassistant/components/proximity/translations/fi.json +1 -25
  337. homeassistant/components/proximity/translations/fr.json +1 -25
  338. homeassistant/components/proximity/translations/gl.json +1 -24
  339. homeassistant/components/proximity/translations/hu.json +1 -25
  340. homeassistant/components/proximity/translations/id.json +1 -25
  341. homeassistant/components/proximity/translations/it.json +1 -13
  342. homeassistant/components/proximity/translations/ja.json +1 -25
  343. homeassistant/components/proximity/translations/lt.json +1 -25
  344. homeassistant/components/proximity/translations/nl.json +8 -0
  345. homeassistant/components/proximity/translations/pl.json +1 -25
  346. homeassistant/components/proximity/translations/pt-BR.json +1 -25
  347. homeassistant/components/proximity/translations/pt.json +1 -25
  348. homeassistant/components/proximity/translations/ru.json +1 -25
  349. homeassistant/components/proximity/translations/sk.json +2 -2
  350. homeassistant/components/proximity/translations/sv.json +1 -25
  351. homeassistant/components/proximity/translations/tr.json +1 -25
  352. homeassistant/components/proximity/translations/zh-Hans.json +2 -2
  353. homeassistant/components/pushbullet/sensor.py +7 -2
  354. homeassistant/components/random/translations/sv.json +4 -4
  355. homeassistant/components/reolink/manifest.json +1 -1
  356. homeassistant/components/reolink/translations/hu.json +21 -0
  357. homeassistant/components/reolink/translations/it.json +12 -0
  358. homeassistant/components/reolink/translations/ja.json +15 -0
  359. homeassistant/components/rest/data.py +46 -1
  360. homeassistant/components/russound_rio/translations/hu.json +21 -0
  361. homeassistant/components/russound_rio/translations/ja.json +21 -0
  362. homeassistant/components/screenlogic/translations/el.json +7 -0
  363. homeassistant/components/sensibo/translations/el.json +1 -0
  364. homeassistant/components/sensor/translations/pl.json +1 -0
  365. homeassistant/components/senz/translations/hu.json +6 -0
  366. homeassistant/components/senz/translations/ja.json +6 -0
  367. homeassistant/components/shelly/entity.py +10 -3
  368. homeassistant/components/shelly/manifest.json +1 -1
  369. homeassistant/components/sma/translations/ja.json +8 -0
  370. homeassistant/components/smappee/translations/hu.json +6 -0
  371. homeassistant/components/smappee/translations/ja.json +6 -0
  372. homeassistant/components/smarla/translations/ja.json +9 -0
  373. homeassistant/components/smartthings/translations/hu.json +15 -0
  374. homeassistant/components/smartthings/translations/ja.json +6 -0
  375. homeassistant/components/sonos/translations/cs.json +6 -0
  376. homeassistant/components/sonos/translations/fr.json +6 -0
  377. homeassistant/components/sonos/translations/hu.json +9 -0
  378. homeassistant/components/sonos/translations/it.json +11 -0
  379. homeassistant/components/sonos/translations/ja.json +9 -0
  380. homeassistant/components/spotify/translations/hu.json +6 -0
  381. homeassistant/components/stream/__init__.py +8 -4
  382. homeassistant/components/stream/const.py +2 -1
  383. homeassistant/components/stream/core.py +3 -1
  384. homeassistant/components/subaru/strings.json +2 -2
  385. homeassistant/components/subaru/translations/ca.json +0 -1
  386. homeassistant/components/subaru/translations/cs.json +0 -2
  387. homeassistant/components/subaru/translations/de.json +2 -2
  388. homeassistant/components/subaru/translations/el.json +2 -2
  389. homeassistant/components/subaru/translations/en-GB.json +2 -2
  390. homeassistant/components/subaru/translations/en.json +2 -2
  391. homeassistant/components/subaru/translations/es.json +2 -2
  392. homeassistant/components/subaru/translations/et.json +2 -2
  393. homeassistant/components/subaru/translations/fi.json +0 -1
  394. homeassistant/components/subaru/translations/hu.json +2 -2
  395. homeassistant/components/subaru/translations/it.json +0 -1
  396. homeassistant/components/subaru/translations/ja.json +0 -1
  397. homeassistant/components/subaru/translations/ko.json +0 -1
  398. homeassistant/components/subaru/translations/lt.json +0 -2
  399. homeassistant/components/subaru/translations/pt-BR.json +0 -1
  400. homeassistant/components/subaru/translations/pt.json +2 -2
  401. homeassistant/components/subaru/translations/ru.json +2 -2
  402. homeassistant/components/subaru/translations/sk.json +2 -2
  403. homeassistant/components/subaru/translations/sv.json +0 -2
  404. homeassistant/components/subaru/translations/tr.json +0 -2
  405. homeassistant/components/subaru/translations/zh-Hans.json +2 -2
  406. homeassistant/components/subaru/translations/zh-Hant.json +2 -2
  407. homeassistant/components/sun/translations/ja.json +9 -0
  408. homeassistant/components/swiss_public_transport/translations/el.json +60 -6
  409. homeassistant/components/switchbot/translations/hu.json +54 -0
  410. homeassistant/components/switchbot/translations/it.json +53 -0
  411. homeassistant/components/switchbot/translations/ja.json +46 -0
  412. homeassistant/components/switchbot/translations/sv.json +2 -0
  413. homeassistant/components/switchbot_cloud/__init__.py +6 -1
  414. homeassistant/components/switchbot_cloud/binary_sensor.py +8 -1
  415. homeassistant/components/switchbot_cloud/sensor.py +3 -2
  416. homeassistant/components/telegram_bot/config_flow.py +23 -11
  417. homeassistant/components/telegram_bot/manifest.json +1 -1
  418. homeassistant/components/telegram_bot/translations/cs.json +30 -0
  419. homeassistant/components/telegram_bot/translations/de.json +23 -1
  420. homeassistant/components/telegram_bot/translations/el.json +30 -0
  421. homeassistant/components/telegram_bot/translations/en-GB.json +3 -1
  422. homeassistant/components/telegram_bot/translations/es.json +30 -0
  423. homeassistant/components/telegram_bot/translations/et.json +24 -0
  424. homeassistant/components/telegram_bot/translations/fr.json +3 -1
  425. homeassistant/components/telegram_bot/translations/hu.json +56 -0
  426. homeassistant/components/telegram_bot/translations/it.json +30 -0
  427. homeassistant/components/telegram_bot/translations/ja.json +99 -0
  428. homeassistant/components/telegram_bot/translations/pt.json +30 -0
  429. homeassistant/components/telegram_bot/translations/ru.json +21 -1
  430. homeassistant/components/telegram_bot/translations/sk.json +30 -0
  431. homeassistant/components/telegram_bot/translations/sv.json +23 -0
  432. homeassistant/components/telegram_bot/translations/zh-Hans.json +30 -0
  433. homeassistant/components/telegram_bot/translations/zh-Hant.json +30 -0
  434. homeassistant/components/template/translations/pl.json +25 -3
  435. homeassistant/components/tesla_fleet/translations/de.json +1 -1
  436. homeassistant/components/tesla_fleet/translations/hu.json +30 -0
  437. homeassistant/components/tesla_fleet/translations/ja.json +22 -0
  438. homeassistant/components/teslemetry/coordinator.py +6 -6
  439. homeassistant/components/teslemetry/translations/de.json +2 -2
  440. homeassistant/components/text/translations/sv.json +1 -1
  441. homeassistant/components/thermopro/strings.json +1 -1
  442. homeassistant/components/thermopro/translations/cs.json +0 -7
  443. homeassistant/components/thermopro/translations/de.json +1 -1
  444. homeassistant/components/thermopro/translations/el.json +1 -1
  445. homeassistant/components/thermopro/translations/en-GB.json +1 -1
  446. homeassistant/components/thermopro/translations/en.json +1 -1
  447. homeassistant/components/thermopro/translations/et.json +1 -1
  448. homeassistant/components/thermopro/translations/ja.json +0 -7
  449. homeassistant/components/thermopro/translations/lt.json +0 -7
  450. homeassistant/components/thermopro/translations/nl.json +0 -7
  451. homeassistant/components/thermopro/translations/pt-BR.json +0 -7
  452. homeassistant/components/thermopro/translations/pt.json +0 -7
  453. homeassistant/components/thermopro/translations/sk.json +1 -1
  454. homeassistant/components/thermopro/translations/sv.json +0 -7
  455. homeassistant/components/thermopro/translations/tr.json +0 -7
  456. homeassistant/components/tibber/manifest.json +1 -1
  457. homeassistant/components/tibber/sensor.py +1 -1
  458. homeassistant/components/tilt_pi/translations/hu.json +31 -0
  459. homeassistant/components/tilt_pi/translations/ja.json +31 -0
  460. homeassistant/components/tilt_pi/translations/nl.json +7 -0
  461. homeassistant/components/toon/translations/hu.json +6 -0
  462. homeassistant/components/vegehub/translations/hu.json +44 -0
  463. homeassistant/components/vegehub/translations/it.json +44 -0
  464. homeassistant/components/vegehub/translations/ja.json +44 -0
  465. homeassistant/components/vegehub/translations/sv.json +2 -1
  466. homeassistant/components/vesync/fan.py +25 -17
  467. homeassistant/components/vicare/translations/sv.json +2 -2
  468. homeassistant/components/vulcan/manifest.json +1 -1
  469. homeassistant/components/wallbox/const.py +4 -0
  470. homeassistant/components/wallbox/coordinator.py +47 -20
  471. homeassistant/components/wallbox/lock.py +1 -12
  472. homeassistant/components/wallbox/number.py +1 -12
  473. homeassistant/components/wallbox/translations/hu.json +3 -0
  474. homeassistant/components/wallbox/translations/ja.json +5 -0
  475. homeassistant/components/weheat/translations/hu.json +6 -0
  476. homeassistant/components/withings/translations/de.json +4 -4
  477. homeassistant/components/withings/translations/hu.json +6 -0
  478. homeassistant/components/withings/translations/ja.json +3 -0
  479. homeassistant/components/wled/translations/fr.json +1 -0
  480. homeassistant/components/wmspro/cover.py +4 -7
  481. homeassistant/components/wmspro/light.py +12 -9
  482. homeassistant/components/wmspro/manifest.json +1 -1
  483. homeassistant/components/wyoming/translations/sv.json +2 -2
  484. homeassistant/components/xbox/translations/hu.json +6 -0
  485. homeassistant/components/xiaomi_miio/translations/fr.json +24 -2
  486. homeassistant/components/xiaomi_miio/translations/hu.json +30 -7
  487. homeassistant/components/yale/translations/hu.json +6 -0
  488. homeassistant/components/yolink/translations/hu.json +6 -0
  489. homeassistant/components/zha/translations/fr.json +50 -0
  490. homeassistant/components/zha/translations/hu.json +53 -0
  491. homeassistant/components/zha/translations/it.json +50 -0
  492. homeassistant/components/zha/translations/ja.json +41 -0
  493. homeassistant/components/zha/translations/nl.json +7 -0
  494. homeassistant/components/zha/translations/sv.json +23 -0
  495. homeassistant/components/zwave_js/config_flow.py +84 -88
  496. homeassistant/components/zwave_js/strings.json +31 -15
  497. homeassistant/components/zwave_js/translations/bg.json +0 -3
  498. homeassistant/components/zwave_js/translations/cs.json +0 -17
  499. homeassistant/components/zwave_js/translations/de.json +27 -11
  500. homeassistant/components/zwave_js/translations/el.json +25 -9
  501. homeassistant/components/zwave_js/translations/en-GB.json +25 -9
  502. homeassistant/components/zwave_js/translations/en.json +25 -9
  503. homeassistant/components/zwave_js/translations/es.json +25 -9
  504. homeassistant/components/zwave_js/translations/et.json +25 -9
  505. homeassistant/components/zwave_js/translations/fi.json +0 -14
  506. homeassistant/components/zwave_js/translations/fr.json +6 -0
  507. homeassistant/components/zwave_js/translations/ga.json +0 -19
  508. homeassistant/components/zwave_js/translations/hu.json +33 -9
  509. homeassistant/components/zwave_js/translations/it.json +26 -0
  510. homeassistant/components/zwave_js/translations/ja.json +26 -0
  511. homeassistant/components/zwave_js/translations/lt.json +0 -17
  512. homeassistant/components/zwave_js/translations/mk.json +0 -10
  513. homeassistant/components/zwave_js/translations/pt.json +10 -18
  514. homeassistant/components/zwave_js/translations/ru.json +28 -8
  515. homeassistant/components/zwave_js/translations/sk.json +25 -9
  516. homeassistant/components/zwave_js/translations/sv.json +30 -14
  517. homeassistant/components/zwave_js/translations/tr.json +0 -12
  518. homeassistant/components/zwave_js/translations/zh-Hans.json +27 -11
  519. homeassistant/components/zwave_js/translations/zh-Hant.json +25 -9
  520. homeassistant/const.py +1 -1
  521. homeassistant/generated/integrations.json +1 -8
  522. homeassistant/package_constraints.txt +1 -1
  523. {homeassistant-2025.7.0b1.dist-info → homeassistant-2025.7.0b5.dist-info}/METADATA +1 -1
  524. {homeassistant-2025.7.0b1.dist-info → homeassistant-2025.7.0b5.dist-info}/RECORD +529 -511
  525. homeassistant/components/dweet/__init__.py +0 -79
  526. homeassistant/components/dweet/manifest.json +0 -10
  527. homeassistant/components/dweet/sensor.py +0 -124
  528. homeassistant/components/thermopro/translations/ga.json +0 -9
  529. homeassistant/components/thermopro/translations/mk.json +0 -9
  530. {homeassistant-2025.7.0b1.dist-info → homeassistant-2025.7.0b5.dist-info}/WHEEL +0 -0
  531. {homeassistant-2025.7.0b1.dist-info → homeassistant-2025.7.0b5.dist-info}/entry_points.txt +0 -0
  532. {homeassistant-2025.7.0b1.dist-info → homeassistant-2025.7.0b5.dist-info}/licenses/LICENSE.md +0 -0
  533. {homeassistant-2025.7.0b1.dist-info → homeassistant-2025.7.0b5.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  534. {homeassistant-2025.7.0b1.dist-info → homeassistant-2025.7.0b5.dist-info}/top_level.txt +0 -0
@@ -305,6 +305,12 @@
305
305
  "led_intensity_when_on": {
306
306
  "name": "Intensit\u00e0 predefinita di tutti i LED accesi"
307
307
  },
308
+ "lift_drive_down_time": {
309
+ "name": "Tempo di discesa dell'ascensore"
310
+ },
311
+ "lift_drive_up_time": {
312
+ "name": "Tempo di salita dell'ascensore"
313
+ },
308
314
  "load_level_indicator_timeout": {
309
315
  "name": "Timeout dell'indicatore del livello di carico"
310
316
  },
@@ -359,6 +365,9 @@
359
365
  "serving_size": {
360
366
  "name": "Usato per erogare"
361
367
  },
368
+ "sound_volume": {
369
+ "name": "Volume audio"
370
+ },
362
371
  "start_up_color_temperature": {
363
372
  "name": "Temperatura di colore all'avvio"
364
373
  },
@@ -368,6 +377,12 @@
368
377
  "state_after_power_restored": {
369
378
  "name": "Livello predefinito di attenuazione all'avvio"
370
379
  },
380
+ "tilt_open_close_and_step_time": {
381
+ "name": "Tempo di inclinazione, di apertura e chiusura e passo"
382
+ },
383
+ "tilt_position_percentage_after_move_to_level": {
384
+ "name": "Percentuale della posizione di inclinazione dopo lo spostamento al livello"
385
+ },
371
386
  "timer_duration": {
372
387
  "name": "Durata del timer"
373
388
  },
@@ -427,6 +442,12 @@
427
442
  "start_up_on_off": {
428
443
  "name": "Comportamento all'avvio"
429
444
  },
445
+ "switch_actions": {
446
+ "name": "Azioni dell'interruttore"
447
+ },
448
+ "switch_indication": {
449
+ "name": "Indicazione dell'interruttore"
450
+ },
430
451
  "switch_type": {
431
452
  "name": "Tipo di interruttore"
432
453
  },
@@ -462,12 +483,35 @@
462
483
  "internal_temp_monitor": {
463
484
  "name": "Temperatura interna"
464
485
  },
486
+ "last_action": {
487
+ "name": "Ultima azione",
488
+ "state": {
489
+ "lock": "Bloccato/a",
490
+ "unlock": "Sbloccato/a"
491
+ }
492
+ },
493
+ "last_action_source": {
494
+ "name": "Ultima fonte di azione",
495
+ "state": {
496
+ "fingerprint": "impronta digitale",
497
+ "keypad": "Tastiera",
498
+ "rfid": "RFID",
499
+ "self": "Se stesso",
500
+ "zigbee": "Zigbee"
501
+ }
502
+ },
503
+ "last_action_user": {
504
+ "name": "Ultima azione utente"
505
+ },
465
506
  "last_feeding_size": {
466
507
  "name": "Ultima dimensione di alimentazione"
467
508
  },
468
509
  "last_feeding_source": {
469
510
  "name": "Ultima fonte di alimentazione"
470
511
  },
512
+ "last_pin_code": {
513
+ "name": "Ultimo codice PIN"
514
+ },
471
515
  "leaf_wetness": {
472
516
  "name": "Bagnatura fogliare"
473
517
  },
@@ -477,6 +521,9 @@
477
521
  "motion_distance": {
478
522
  "name": "Distanza di movimento"
479
523
  },
524
+ "opening": {
525
+ "name": "In apertura"
526
+ },
480
527
  "overheated": {
481
528
  "name": "Protezione da surriscaldamento"
482
529
  },
@@ -521,6 +568,9 @@
521
568
  }
522
569
  },
523
570
  "switch": {
571
+ "auto_relock": {
572
+ "name": "Riblocco automatico"
573
+ },
524
574
  "aux_switch_scenes": {
525
575
  "name": "Scene di commutazione ausiliaria"
526
576
  },
@@ -520,6 +520,12 @@
520
520
  "led_intensity_when_on": {
521
521
  "name": "\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u5168LED\u70b9\u706f\u5f37\u5ea6"
522
522
  },
523
+ "lift_drive_down_time": {
524
+ "name": "\u30ea\u30d5\u30c8\u4e0b\u964d\u6642\u9593"
525
+ },
526
+ "lift_drive_up_time": {
527
+ "name": "\u30ea\u30d5\u30c8\u4e0a\u6607\u6642\u9593"
528
+ },
523
529
  "liquid_depth_max": {
524
530
  "name": "\u30bb\u30f3\u30b5\u30fc\u304b\u3089\u6db2\u9762\u307e\u3067\u306e\u9ad8\u3055"
525
531
  },
@@ -676,6 +682,9 @@
676
682
  "small_move_sensitivity": {
677
683
  "name": "\u5c0f\u3055\u306a\u52d5\u304d\u306e\u611f\u5ea6"
678
684
  },
685
+ "sound_volume": {
686
+ "name": "\u97f3\u91cf"
687
+ },
679
688
  "start_up_color_temperature": {
680
689
  "name": "\u8d77\u52d5\u6642\u306e\u8272\u6e29\u5ea6"
681
690
  },
@@ -706,6 +715,12 @@
706
715
  "temperature_sensitivity": {
707
716
  "name": "\u6e29\u5ea6\u611f\u5ea6"
708
717
  },
718
+ "tilt_open_close_and_step_time": {
719
+ "name": "\u30c1\u30eb\u30c8\u3001\u30aa\u30fc\u30d7\u30f3\u3001\u30af\u30ed\u30fc\u30ba\u3001\u30b9\u30c6\u30c3\u30d7\u30bf\u30a4\u30e0"
720
+ },
721
+ "tilt_position_percentage_after_move_to_level": {
722
+ "name": "\u6c34\u5e73\u79fb\u52d5\u5f8c\u306e\u50be\u659c\u4f4d\u7f6e\u306e\u30d1\u30fc\u30bb\u30f3\u30c6\u30fc\u30b8"
723
+ },
709
724
  "timer_duration": {
710
725
  "name": "\u30bf\u30a4\u30de\u30fc\u306e\u6301\u7d9a\u6642\u9593"
711
726
  },
@@ -927,6 +942,12 @@
927
942
  "status_indication": {
928
943
  "name": "\u30b9\u30c6\u30fc\u30bf\u30b9\u8868\u793a"
929
944
  },
945
+ "switch_actions": {
946
+ "name": "\u30b9\u30a4\u30c3\u30c1\u30a2\u30af\u30b7\u30e7\u30f3"
947
+ },
948
+ "switch_indication": {
949
+ "name": "\u30b9\u30a4\u30c3\u30c1\u8868\u793a"
950
+ },
930
951
  "switch_mode": {
931
952
  "name": "\u30b9\u30a4\u30c3\u30c1\u30e2\u30fc\u30c9"
932
953
  },
@@ -1075,6 +1096,26 @@
1075
1096
  "irrigation_start_time": {
1076
1097
  "name": "\u704c\u6f11\u958b\u59cb\u6642\u9593"
1077
1098
  },
1099
+ "last_action": {
1100
+ "name": "\u6700\u5f8c\u306e\u30a2\u30af\u30b7\u30e7\u30f3",
1101
+ "state": {
1102
+ "lock": "\u65bd\u9320\u6e08\u307f",
1103
+ "unlock": "\u89e3\u9320\u6e08\u307f"
1104
+ }
1105
+ },
1106
+ "last_action_source": {
1107
+ "name": "\u6700\u5f8c\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u30bd\u30fc\u30b9",
1108
+ "state": {
1109
+ "fingerprint": "\u6307\u7d0b",
1110
+ "keypad": "\u30ad\u30fc\u30d1\u30c3\u30c9",
1111
+ "rfid": "RFID",
1112
+ "self": "\u30bb\u30eb\u30d5",
1113
+ "zigbee": "Zigbee"
1114
+ }
1115
+ },
1116
+ "last_action_user": {
1117
+ "name": "\u6700\u5f8c\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u30e6\u30fc\u30b6\u30fc"
1118
+ },
1078
1119
  "last_feeding_size": {
1079
1120
  "name": "\u524d\u56de\u306e\u7d66\u990c\u30b5\u30a4\u30ba"
1080
1121
  },
@@ -1046,6 +1046,13 @@
1046
1046
  "irrigation_start_time": {
1047
1047
  "name": "Starttijd van de irrigatie"
1048
1048
  },
1049
+ "last_action": {
1050
+ "name": "Laatste actie",
1051
+ "state": {
1052
+ "lock": "Vergrendeld",
1053
+ "unlock": "Ontgrendeld"
1054
+ }
1055
+ },
1049
1056
  "last_feeding_size": {
1050
1057
  "name": "Laatste voedingsafgifte"
1051
1058
  },
@@ -986,6 +986,12 @@
986
986
  "status_indication": {
987
987
  "name": "Statusindikering"
988
988
  },
989
+ "switch_actions": {
990
+ "name": "Brytar\u00e5tg\u00e4rder"
991
+ },
992
+ "switch_indication": {
993
+ "name": "Brytarindikator"
994
+ },
989
995
  "switch_mode": {
990
996
  "name": "V\u00e4xla l\u00e4ge"
991
997
  },
@@ -1139,11 +1145,25 @@
1139
1145
  "name": "Starttid f\u00f6r bevattning"
1140
1146
  },
1141
1147
  "last_action": {
1148
+ "name": "Senaste \u00e5tg\u00e4rd",
1142
1149
  "state": {
1143
1150
  "lock": "L\u00e5st",
1144
1151
  "unlock": "Ol\u00e5st"
1145
1152
  }
1146
1153
  },
1154
+ "last_action_source": {
1155
+ "name": "K\u00e4lla f\u00f6r senaste \u00e5tg\u00e4rd",
1156
+ "state": {
1157
+ "fingerprint": "Fingeravtryck",
1158
+ "keypad": "Knappsats",
1159
+ "rfid": "RFID",
1160
+ "self": "Sj\u00e4lv",
1161
+ "zigbee": "Zigbee"
1162
+ }
1163
+ },
1164
+ "last_action_user": {
1165
+ "name": "Anv\u00e4ndare av senaste \u00e5tg\u00e4rd"
1166
+ },
1147
1167
  "last_feeding_size": {
1148
1168
  "name": "Senaste foderstorlek"
1149
1169
  },
@@ -1153,6 +1173,9 @@
1153
1173
  "last_illumination_state": {
1154
1174
  "name": "Senaste belysningstillst\u00e5nd"
1155
1175
  },
1176
+ "last_pin_code": {
1177
+ "name": "Senaste PIN-kod"
1178
+ },
1156
1179
  "last_valve_open_duration": {
1157
1180
  "name": "Senaste ventil\u00f6ppningstid"
1158
1181
  },
@@ -40,7 +40,6 @@ from homeassistant.helpers.hassio import is_hassio
40
40
  from homeassistant.helpers.service_info.hassio import HassioServiceInfo
41
41
  from homeassistant.helpers.service_info.usb import UsbServiceInfo
42
42
  from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo
43
- from homeassistant.helpers.typing import VolDictType
44
43
 
45
44
  from .addon import get_addon_manager
46
45
  from .const import (
@@ -90,6 +89,9 @@ ADDON_USER_INPUT_MAP = {
90
89
  ON_SUPERVISOR_SCHEMA = vol.Schema({vol.Optional(CONF_USE_ADDON, default=True): bool})
91
90
  MIN_MIGRATION_SDK_VERSION = AwesomeVersion("6.61")
92
91
 
92
+ NETWORK_TYPE_NEW = "new"
93
+ NETWORK_TYPE_EXISTING = "existing"
94
+
93
95
 
94
96
  def get_manual_schema(user_input: dict[str, Any]) -> vol.Schema:
95
97
  """Return a schema for the manual step."""
@@ -632,6 +634,81 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
632
634
  self, user_input: dict[str, Any] | None = None
633
635
  ) -> ConfigFlowResult:
634
636
  """Ask for config for Z-Wave JS add-on."""
637
+
638
+ if user_input is not None:
639
+ self.usb_path = user_input[CONF_USB_PATH]
640
+ return await self.async_step_network_type()
641
+
642
+ if self._usb_discovery:
643
+ return await self.async_step_network_type()
644
+
645
+ usb_path = self.usb_path or ""
646
+
647
+ try:
648
+ ports = await async_get_usb_ports(self.hass)
649
+ except OSError as err:
650
+ _LOGGER.error("Failed to get USB ports: %s", err)
651
+ return self.async_abort(reason="usb_ports_failed")
652
+
653
+ data_schema = vol.Schema(
654
+ {
655
+ vol.Required(CONF_USB_PATH, default=usb_path): vol.In(ports),
656
+ }
657
+ )
658
+
659
+ return self.async_show_form(
660
+ step_id="configure_addon_user", data_schema=data_schema
661
+ )
662
+
663
+ async def async_step_network_type(
664
+ self, user_input: dict[str, Any] | None = None
665
+ ) -> ConfigFlowResult:
666
+ """Ask for network type (new or existing)."""
667
+ # For recommended installation, automatically set network type to "new"
668
+ if self._recommended_install:
669
+ user_input = {"network_type": NETWORK_TYPE_NEW}
670
+
671
+ if user_input is not None:
672
+ if user_input["network_type"] == NETWORK_TYPE_NEW:
673
+ # Set all keys to empty strings for new network
674
+ self.s0_legacy_key = ""
675
+ self.s2_access_control_key = ""
676
+ self.s2_authenticated_key = ""
677
+ self.s2_unauthenticated_key = ""
678
+ self.lr_s2_access_control_key = ""
679
+ self.lr_s2_authenticated_key = ""
680
+
681
+ addon_config_updates = {
682
+ CONF_ADDON_DEVICE: self.usb_path,
683
+ CONF_ADDON_S0_LEGACY_KEY: self.s0_legacy_key,
684
+ CONF_ADDON_S2_ACCESS_CONTROL_KEY: self.s2_access_control_key,
685
+ CONF_ADDON_S2_AUTHENTICATED_KEY: self.s2_authenticated_key,
686
+ CONF_ADDON_S2_UNAUTHENTICATED_KEY: self.s2_unauthenticated_key,
687
+ CONF_ADDON_LR_S2_ACCESS_CONTROL_KEY: self.lr_s2_access_control_key,
688
+ CONF_ADDON_LR_S2_AUTHENTICATED_KEY: self.lr_s2_authenticated_key,
689
+ }
690
+
691
+ await self._async_set_addon_config(addon_config_updates)
692
+ return await self.async_step_start_addon()
693
+
694
+ # Network already exists, go to security keys step
695
+ return await self.async_step_configure_security_keys()
696
+
697
+ return self.async_show_form(
698
+ step_id="network_type",
699
+ data_schema=vol.Schema(
700
+ {
701
+ vol.Required("network_type", default=""): vol.In(
702
+ [NETWORK_TYPE_NEW, NETWORK_TYPE_EXISTING]
703
+ )
704
+ }
705
+ ),
706
+ )
707
+
708
+ async def async_step_configure_security_keys(
709
+ self, user_input: dict[str, Any] | None = None
710
+ ) -> ConfigFlowResult:
711
+ """Ask for security keys for existing Z-Wave network."""
635
712
  addon_info = await self._async_get_addon_info()
636
713
  addon_config = addon_info.options
637
714
 
@@ -654,10 +731,6 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
654
731
  CONF_ADDON_LR_S2_AUTHENTICATED_KEY, self.lr_s2_authenticated_key or ""
655
732
  )
656
733
 
657
- if self._recommended_install and self._usb_discovery:
658
- # Recommended installation with USB discovery, skip asking for keys
659
- user_input = {}
660
-
661
734
  if user_input is not None:
662
735
  self.s0_legacy_key = user_input.get(CONF_S0_LEGACY_KEY, s0_legacy_key)
663
736
  self.s2_access_control_key = user_input.get(
@@ -675,8 +748,6 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
675
748
  self.lr_s2_authenticated_key = user_input.get(
676
749
  CONF_LR_S2_AUTHENTICATED_KEY, lr_s2_authenticated_key
677
750
  )
678
- if not self._usb_discovery:
679
- self.usb_path = user_input[CONF_USB_PATH]
680
751
 
681
752
  addon_config_updates = {
682
753
  CONF_ADDON_DEVICE: self.usb_path,
@@ -689,14 +760,10 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
689
760
  }
690
761
 
691
762
  await self._async_set_addon_config(addon_config_updates)
692
-
693
763
  return await self.async_step_start_addon()
694
764
 
695
- usb_path = self.usb_path or addon_config.get(CONF_ADDON_DEVICE) or ""
696
- schema: VolDictType = (
697
- {}
698
- if self._recommended_install
699
- else {
765
+ data_schema = vol.Schema(
766
+ {
700
767
  vol.Optional(CONF_S0_LEGACY_KEY, default=s0_legacy_key): str,
701
768
  vol.Optional(
702
769
  CONF_S2_ACCESS_CONTROL_KEY, default=s2_access_control_key
@@ -716,22 +783,8 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
716
783
  }
717
784
  )
718
785
 
719
- if not self._usb_discovery:
720
- try:
721
- ports = await async_get_usb_ports(self.hass)
722
- except OSError as err:
723
- _LOGGER.error("Failed to get USB ports: %s", err)
724
- return self.async_abort(reason="usb_ports_failed")
725
-
726
- schema = {
727
- vol.Required(CONF_USB_PATH, default=usb_path): vol.In(ports),
728
- **schema,
729
- }
730
-
731
- data_schema = vol.Schema(schema)
732
-
733
786
  return self.async_show_form(
734
- step_id="configure_addon_user", data_schema=data_schema
787
+ step_id="configure_security_keys", data_schema=data_schema
735
788
  )
736
789
 
737
790
  async def async_step_finish_addon_setup_user(
@@ -845,11 +898,8 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
845
898
  },
846
899
  )
847
900
 
848
- if user_input is not None:
849
- self._migrating = True
850
- return await self.async_step_backup_nvm()
851
-
852
- return self.async_show_form(step_id="intent_migrate")
901
+ self._migrating = True
902
+ return await self.async_step_backup_nvm()
853
903
 
854
904
  async def async_step_backup_nvm(
855
905
  self, user_input: dict[str, Any] | None = None
@@ -904,7 +954,7 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
904
954
  async def async_step_instruct_unplug(
905
955
  self, user_input: dict[str, Any] | None = None
906
956
  ) -> ConfigFlowResult:
907
- """Reset the current controller, and instruct the user to unplug it."""
957
+ """Instruct the user to unplug the old controller."""
908
958
 
909
959
  if user_input is not None:
910
960
  if self.usb_path:
@@ -914,63 +964,9 @@ class ZWaveJSConfigFlow(ConfigFlow, domain=DOMAIN):
914
964
  # Now that the old controller is gone, we can scan for serial ports again
915
965
  return await self.async_step_choose_serial_port()
916
966
 
917
- try:
918
- driver = self._get_driver()
919
- except AbortFlow:
920
- return self.async_abort(reason="config_entry_not_loaded")
921
-
922
- @callback
923
- def set_driver_ready(event: dict) -> None:
924
- "Set the driver ready event."
925
- wait_driver_ready.set()
926
-
927
- wait_driver_ready = asyncio.Event()
928
-
929
- unsubscribe = driver.once("driver ready", set_driver_ready)
930
-
931
- # reset the old controller
932
- try:
933
- await driver.async_hard_reset()
934
- except FailedCommand as err:
935
- unsubscribe()
936
- _LOGGER.error("Failed to reset controller: %s", err)
937
- return self.async_abort(reason="reset_failed")
938
-
939
- # Update the unique id of the config entry
940
- # to the new home id, which requires waiting for the driver
941
- # to be ready before getting the new home id.
942
- # If the backup restore, done later in the flow, fails,
943
- # the config entry unique id should be the new home id
944
- # after the controller reset.
945
- try:
946
- async with asyncio.timeout(DRIVER_READY_TIMEOUT):
947
- await wait_driver_ready.wait()
948
- except TimeoutError:
949
- pass
950
- finally:
951
- unsubscribe()
952
-
953
967
  config_entry = self._reconfigure_config_entry
954
968
  assert config_entry is not None
955
969
 
956
- try:
957
- version_info = await async_get_version_info(
958
- self.hass, config_entry.data[CONF_URL]
959
- )
960
- except CannotConnect:
961
- # Just log this error, as there's nothing to do about it here.
962
- # The stale unique id needs to be handled by a repair flow,
963
- # after the config entry has been reloaded, if the backup restore
964
- # also fails.
965
- _LOGGER.debug(
966
- "Failed to get server version, cannot update config entry "
967
- "unique id with new home id, after controller reset"
968
- )
969
- else:
970
- self.hass.config_entries.async_update_entry(
971
- config_entry, unique_id=str(version_info.home_id)
972
- )
973
-
974
970
  # Unload the config entry before asking the user to unplug the controller.
975
971
  await self.hass.config_entries.async_unload(config_entry.entry_id)
976
972
 
@@ -38,26 +38,38 @@
38
38
  },
39
39
  "step": {
40
40
  "configure_addon_user": {
41
+ "data": {
42
+ "usb_path": "[%key:common::config_flow::data::usb_path%]"
43
+ },
44
+ "description": "Select your Z-Wave adapter",
45
+ "title": "Enter the Z-Wave add-on configuration"
46
+ },
47
+ "network_type": {
48
+ "data": {
49
+ "network_type": "Is your network new or does it already exist?"
50
+ },
51
+ "title": "Z-Wave network"
52
+ },
53
+ "configure_security_keys": {
41
54
  "data": {
42
55
  "lr_s2_access_control_key": "Long Range S2 Access Control Key",
43
56
  "lr_s2_authenticated_key": "Long Range S2 Authenticated Key",
44
57
  "s0_legacy_key": "S0 Key (Legacy)",
45
58
  "s2_access_control_key": "S2 Access Control Key",
46
59
  "s2_authenticated_key": "S2 Authenticated Key",
47
- "s2_unauthenticated_key": "S2 Unauthenticated Key",
48
- "usb_path": "[%key:common::config_flow::data::usb_path%]"
60
+ "s2_unauthenticated_key": "S2 Unauthenticated Key"
49
61
  },
50
- "description": "Select your Z-Wave adapter",
51
- "title": "Enter the Z-Wave add-on configuration"
62
+ "description": "Enter the security keys for your existing Z-Wave network",
63
+ "title": "Security keys"
52
64
  },
53
65
  "configure_addon_reconfigure": {
54
66
  "data": {
55
- "lr_s2_access_control_key": "[%key:component::zwave_js::config::step::configure_addon_user::data::lr_s2_access_control_key%]",
56
- "lr_s2_authenticated_key": "[%key:component::zwave_js::config::step::configure_addon_user::data::lr_s2_authenticated_key%]",
57
- "s0_legacy_key": "[%key:component::zwave_js::config::step::configure_addon_user::data::s0_legacy_key%]",
58
- "s2_access_control_key": "[%key:component::zwave_js::config::step::configure_addon_user::data::s2_access_control_key%]",
59
- "s2_authenticated_key": "[%key:component::zwave_js::config::step::configure_addon_user::data::s2_authenticated_key%]",
60
- "s2_unauthenticated_key": "[%key:component::zwave_js::config::step::configure_addon_user::data::s2_unauthenticated_key%]",
67
+ "lr_s2_access_control_key": "[%key:component::zwave_js::config::step::configure_security_keys::data::lr_s2_access_control_key%]",
68
+ "lr_s2_authenticated_key": "[%key:component::zwave_js::config::step::configure_security_keys::data::lr_s2_authenticated_key%]",
69
+ "s0_legacy_key": "[%key:component::zwave_js::config::step::configure_security_keys::data::s0_legacy_key%]",
70
+ "s2_access_control_key": "[%key:component::zwave_js::config::step::configure_security_keys::data::s2_access_control_key%]",
71
+ "s2_authenticated_key": "[%key:component::zwave_js::config::step::configure_security_keys::data::s2_authenticated_key%]",
72
+ "s2_unauthenticated_key": "[%key:component::zwave_js::config::step::configure_security_keys::data::s2_unauthenticated_key%]",
61
73
  "usb_path": "[%key:common::config_flow::data::usb_path%]"
62
74
  },
63
75
  "description": "[%key:component::zwave_js::config::step::configure_addon_user::description%]",
@@ -108,13 +120,9 @@
108
120
  "intent_reconfigure": "Re-configure the current controller"
109
121
  }
110
122
  },
111
- "intent_migrate": {
112
- "title": "[%key:component::zwave_js::config::step::reconfigure::menu_options::intent_migrate%]",
113
- "description": "Before setting up your new controller, your old controller needs to be reset. A backup will be performed first.\n\nDo you wish to continue?"
114
- },
115
123
  "instruct_unplug": {
116
124
  "title": "Unplug your old controller",
117
- "description": "Backup saved to \"{file_path}\"\n\nYour old controller has been reset. If the hardware is no longer needed, you can now unplug it.\n\nPlease make sure your new controller is plugged in before continuing."
125
+ "description": "Backup saved to \"{file_path}\"\n\nYour old controller has not been reset. You should now unplug it to prevent it from interfering with the new controller.\n\nPlease make sure your new controller is plugged in before continuing."
118
126
  },
119
127
  "restore_failed": {
120
128
  "title": "Restoring unsuccessful",
@@ -626,5 +634,13 @@
626
634
  },
627
635
  "name": "Set a value (advanced)"
628
636
  }
637
+ },
638
+ "selector": {
639
+ "network_type": {
640
+ "options": {
641
+ "new": "It's new",
642
+ "existing": "It already exists"
643
+ }
644
+ }
629
645
  }
630
646
  }
@@ -32,9 +32,6 @@
32
32
  "instruct_unplug": {
33
33
  "title": "\u0418\u0437\u043a\u043b\u044e\u0447\u0435\u0442\u0435 \u0441\u0442\u0430\u0440\u0438\u044f \u0441\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u0440"
34
34
  },
35
- "intent_migrate": {
36
- "title": "\u041c\u0438\u0433\u0440\u0438\u0440\u0430\u043d\u0435 \u043a\u044a\u043c \u043d\u043e\u0432 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u0440"
37
- },
38
35
  "manual": {
39
36
  "data": {
40
37
  "url": "URL"
@@ -45,12 +45,6 @@
45
45
  },
46
46
  "configure_addon_reconfigure": {
47
47
  "data": {
48
- "lr_s2_access_control_key": "Kl\u00ed\u010d pro \u0159\u00edzen\u00ed p\u0159\u00edstupu S2 s dlouh\u00fdm dosahem",
49
- "lr_s2_authenticated_key": "Kl\u00ed\u010d ov\u011b\u0159en\u00fd S2 s dlouh\u00fdm dosahem",
50
- "s0_legacy_key": "Kl\u00ed\u010d S0 (star\u0161\u00ed)",
51
- "s2_access_control_key": "P\u0159\u00edstupov\u00fd kl\u00ed\u010d S2",
52
- "s2_authenticated_key": "Ov\u011b\u0159en\u00fd kl\u00ed\u010d S2",
53
- "s2_unauthenticated_key": "Neov\u011b\u0159en\u00fd kl\u00ed\u010d S2",
54
48
  "usb_path": "Cesta k USB za\u0159\u00edzen\u00ed"
55
49
  },
56
50
  "description": "Vyberte sv\u016fj adapt\u00e9r Z-Wave",
@@ -58,12 +52,6 @@
58
52
  },
59
53
  "configure_addon_user": {
60
54
  "data": {
61
- "lr_s2_access_control_key": "Kl\u00ed\u010d pro \u0159\u00edzen\u00ed p\u0159\u00edstupu S2 s dlouh\u00fdm dosahem",
62
- "lr_s2_authenticated_key": "Kl\u00ed\u010d ov\u011b\u0159en\u00fd S2 s dlouh\u00fdm dosahem",
63
- "s0_legacy_key": "Kl\u00ed\u010d S0 (star\u0161\u00ed)",
64
- "s2_access_control_key": "P\u0159\u00edstupov\u00fd kl\u00ed\u010d S2",
65
- "s2_authenticated_key": "Ov\u011b\u0159en\u00fd kl\u00ed\u010d S2",
66
- "s2_unauthenticated_key": "Neov\u011b\u0159en\u00fd kl\u00ed\u010d S2",
67
55
  "usb_path": "Cesta k USB za\u0159\u00edzen\u00ed"
68
56
  },
69
57
  "description": "Vyberte sv\u016fj adapt\u00e9r Z-Wave",
@@ -84,13 +72,8 @@
84
72
  "title": "Nastavit Z-Wave"
85
73
  },
86
74
  "instruct_unplug": {
87
- "description": "Z\u00e1loha byla ulo\u017eena do \"{file_path}\".\n \nV\u00e1\u0161 star\u00fd ovlada\u010d byl resetov\u00e1n. Pokud ji\u017e hardware nepot\u0159ebujete, m\u016f\u017eete jej nyn\u00ed odpojit.\n\nNe\u017e budete pokra\u010dovat, ujist\u011bte se, \u017ee je v\u00e1\u0161 nov\u00fd ovlada\u010d zapojen.",
88
75
  "title": "Odpojte star\u00fd ovlada\u010d"
89
76
  },
90
- "intent_migrate": {
91
- "description": "P\u0159ed nastaven\u00edm nov\u00e9ho ovlada\u010de je t\u0159eba resetovat v\u00e1\u0161 star\u00fd ovlada\u010d. Nejprve bude provedena z\u00e1loha.\n\nChcete pokra\u010dovat?",
92
- "title": "Migrujte na nov\u00fd \u0159adi\u010d"
93
- },
94
77
  "manual": {
95
78
  "data": {
96
79
  "url": "URL"