homeassistant 2025.9.2__py3-none-any.whl → 2025.9.4__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 (672) hide show
  1. homeassistant/components/abode/translations/pt.json +2 -2
  2. homeassistant/components/abode/translations/uk.json +8 -0
  3. homeassistant/components/acaia/translations/uk.json +21 -0
  4. homeassistant/components/aftership/translations/es.json +1 -1
  5. homeassistant/components/airgradient/translations/pl.json +1 -1
  6. homeassistant/components/airgradient/translations/uk.json +7 -0
  7. homeassistant/components/airos/translations/de.json +1 -1
  8. homeassistant/components/airzone/translations/pl.json +1 -1
  9. homeassistant/components/aladdin_connect/translations/it.json +1 -0
  10. homeassistant/components/alarmdecoder/translations/pt.json +1 -1
  11. homeassistant/components/anova/translations/pt.json +1 -1
  12. homeassistant/components/aosmith/translations/pt.json +1 -1
  13. homeassistant/components/aprilaire/translations/pl.json +14 -14
  14. homeassistant/components/aquacell/translations/pt.json +1 -1
  15. homeassistant/components/aseko_pool_live/translations/pt.json +2 -2
  16. homeassistant/components/assist_pipeline/translations/cs.json +1 -1
  17. homeassistant/components/assist_pipeline/translations/de.json +1 -1
  18. homeassistant/components/assist_pipeline/translations/el.json +0 -1
  19. homeassistant/components/assist_pipeline/translations/en-GB.json +1 -1
  20. homeassistant/components/assist_pipeline/translations/en.json +1 -1
  21. homeassistant/components/assist_pipeline/translations/es.json +1 -1
  22. homeassistant/components/assist_pipeline/translations/et.json +1 -1
  23. homeassistant/components/assist_pipeline/translations/fr.json +1 -1
  24. homeassistant/components/assist_pipeline/translations/ga.json +0 -1
  25. homeassistant/components/assist_pipeline/translations/he.json +0 -1
  26. homeassistant/components/assist_pipeline/translations/hu.json +0 -1
  27. homeassistant/components/assist_pipeline/translations/id.json +0 -1
  28. homeassistant/components/assist_pipeline/translations/it.json +1 -1
  29. homeassistant/components/assist_pipeline/translations/ja.json +0 -1
  30. homeassistant/components/assist_pipeline/translations/lt.json +1 -1
  31. homeassistant/components/assist_pipeline/translations/nl.json +0 -1
  32. homeassistant/components/assist_pipeline/translations/pl.json +4 -4
  33. homeassistant/components/assist_pipeline/translations/pt.json +2 -2
  34. homeassistant/components/assist_pipeline/translations/ru.json +1 -1
  35. homeassistant/components/assist_pipeline/translations/sk.json +1 -1
  36. homeassistant/components/assist_pipeline/translations/sl.json +0 -1
  37. homeassistant/components/assist_pipeline/translations/sv.json +0 -1
  38. homeassistant/components/assist_pipeline/translations/tr.json +0 -1
  39. homeassistant/components/assist_pipeline/translations/vi.json +0 -1
  40. homeassistant/components/assist_pipeline/translations/zh-Hans.json +1 -1
  41. homeassistant/components/assist_pipeline/translations/zh-Hant.json +1 -1
  42. homeassistant/components/assist_satellite/translations/pt.json +3 -3
  43. homeassistant/components/asuswrt/bridge.py +7 -0
  44. homeassistant/components/asuswrt/manifest.json +1 -1
  45. homeassistant/components/asuswrt/router.py +1 -1
  46. homeassistant/components/asuswrt/translations/de.json +1 -1
  47. homeassistant/components/aurora_abb_powerone/translations/uk.json +10 -0
  48. homeassistant/components/aussie_broadband/translations/uk.json +37 -0
  49. homeassistant/components/autarco/translations/pt.json +1 -1
  50. homeassistant/components/auth/login_flow.py +15 -4
  51. homeassistant/components/automation/translations/de.json +1 -1
  52. homeassistant/components/automation/translations/pl.json +2 -2
  53. homeassistant/components/awair/translations/de.json +1 -1
  54. homeassistant/components/awair/translations/pt.json +2 -2
  55. homeassistant/components/awair/translations/uk.json +10 -0
  56. homeassistant/components/aws_s3/translations/pt.json +1 -1
  57. homeassistant/components/backup/translations/bg.json +2 -2
  58. homeassistant/components/backup/translations/cs.json +3 -3
  59. homeassistant/components/backup/translations/de.json +3 -3
  60. homeassistant/components/backup/translations/el.json +0 -3
  61. homeassistant/components/backup/translations/en-GB.json +3 -3
  62. homeassistant/components/backup/translations/en.json +3 -3
  63. homeassistant/components/backup/translations/es.json +3 -3
  64. homeassistant/components/backup/translations/et.json +2 -2
  65. homeassistant/components/backup/translations/fr.json +0 -3
  66. homeassistant/components/backup/translations/ga.json +0 -3
  67. homeassistant/components/backup/translations/he.json +0 -3
  68. homeassistant/components/backup/translations/hu.json +0 -3
  69. homeassistant/components/backup/translations/id.json +0 -3
  70. homeassistant/components/backup/translations/lt.json +1 -1
  71. homeassistant/components/backup/translations/nl.json +0 -3
  72. homeassistant/components/backup/translations/pl.json +0 -3
  73. homeassistant/components/backup/translations/pt.json +3 -3
  74. homeassistant/components/backup/translations/sv.json +0 -3
  75. homeassistant/components/backup/translations/tr.json +0 -3
  76. homeassistant/components/backup/translations/zh-Hans.json +3 -3
  77. homeassistant/components/backup/translations/zh-Hant.json +3 -3
  78. homeassistant/components/bang_olufsen/translations/pt.json +1 -1
  79. homeassistant/components/bayesian/translations/es.json +1 -1
  80. homeassistant/components/bayesian/translations/pt.json +1 -1
  81. homeassistant/components/bayesian/translations/sv.json +1 -0
  82. homeassistant/components/binary_sensor/translations/es.json +1 -1
  83. homeassistant/components/binary_sensor/translations/mk.json +5 -0
  84. homeassistant/components/binary_sensor/translations/pl.json +16 -16
  85. homeassistant/components/binary_sensor/translations/sv.json +1 -1
  86. homeassistant/components/bluetooth/manifest.json +2 -2
  87. homeassistant/components/bmw_connected_drive/translations/uk.json +66 -0
  88. homeassistant/components/bosch_alarm/translations/pt.json +1 -1
  89. homeassistant/components/bring/translations/pt.json +3 -3
  90. homeassistant/components/calendar/translations/pl.json +2 -2
  91. homeassistant/components/cambridge_audio/translations/pl.json +1 -1
  92. homeassistant/components/camera/translations/pl.json +2 -2
  93. homeassistant/components/climate/translations/mk.json +13 -0
  94. homeassistant/components/climate/translations/pl.json +9 -9
  95. homeassistant/components/climate/translations/uk.json +5 -1
  96. homeassistant/components/cookidoo/translations/pt.json +2 -2
  97. homeassistant/components/cover/translations/pl.json +1 -0
  98. homeassistant/components/crownstone/translations/pt.json +1 -1
  99. homeassistant/components/datadog/translations/es.json +1 -1
  100. homeassistant/components/datadog/translations/pt.json +1 -1
  101. homeassistant/components/demo/translations/pl.json +3 -3
  102. homeassistant/components/device_tracker/translations/mk.json +9 -0
  103. homeassistant/components/devolo_home_network/translations/de.json +1 -1
  104. homeassistant/components/discovergy/translations/pt.json +1 -1
  105. homeassistant/components/dlna_dmr/translations/de.json +1 -1
  106. homeassistant/components/doorbird/translations/pt.json +3 -1
  107. homeassistant/components/drop_connect/translations/mk.json +11 -0
  108. homeassistant/components/ecoforest/translations/pl.json +2 -2
  109. homeassistant/components/econet/translations/pt.json +1 -1
  110. homeassistant/components/edl21/translations/uk.json +10 -0
  111. homeassistant/components/efergy/translations/uk.json +25 -0
  112. homeassistant/components/elkm1/translations/bg.json +0 -3
  113. homeassistant/components/elkm1/translations/ca.json +0 -4
  114. homeassistant/components/elkm1/translations/cs.json +11 -11
  115. homeassistant/components/elkm1/translations/de.json +15 -15
  116. homeassistant/components/elkm1/translations/el.json +0 -9
  117. homeassistant/components/elkm1/translations/en-GB.json +11 -11
  118. homeassistant/components/elkm1/translations/en.json +11 -11
  119. homeassistant/components/elkm1/translations/es-419.json +0 -4
  120. homeassistant/components/elkm1/translations/es.json +9 -9
  121. homeassistant/components/elkm1/translations/et.json +10 -10
  122. homeassistant/components/elkm1/translations/fi.json +0 -9
  123. homeassistant/components/elkm1/translations/fr.json +0 -4
  124. homeassistant/components/elkm1/translations/ga.json +0 -10
  125. homeassistant/components/elkm1/translations/he.json +0 -1
  126. homeassistant/components/elkm1/translations/hu.json +0 -10
  127. homeassistant/components/elkm1/translations/id.json +0 -4
  128. homeassistant/components/elkm1/translations/it.json +0 -9
  129. homeassistant/components/elkm1/translations/ja.json +0 -10
  130. homeassistant/components/elkm1/translations/ko.json +0 -9
  131. homeassistant/components/elkm1/translations/lb.json +0 -4
  132. homeassistant/components/elkm1/translations/lt.json +11 -11
  133. homeassistant/components/elkm1/translations/nb.json +0 -4
  134. homeassistant/components/elkm1/translations/nl.json +0 -4
  135. homeassistant/components/elkm1/translations/pl.json +0 -4
  136. homeassistant/components/elkm1/translations/pt-BR.json +0 -4
  137. homeassistant/components/elkm1/translations/pt.json +11 -11
  138. homeassistant/components/elkm1/translations/ro.json +0 -4
  139. homeassistant/components/elkm1/translations/ru.json +0 -10
  140. homeassistant/components/elkm1/translations/sk.json +11 -11
  141. homeassistant/components/elkm1/translations/sl.json +0 -2
  142. homeassistant/components/elkm1/translations/sv.json +0 -10
  143. homeassistant/components/elkm1/translations/tr.json +0 -10
  144. homeassistant/components/elkm1/translations/uk.json +0 -4
  145. homeassistant/components/elkm1/translations/vi.json +0 -7
  146. homeassistant/components/elkm1/translations/zh-Hans.json +3 -3
  147. homeassistant/components/elkm1/translations/zh-Hant.json +11 -11
  148. homeassistant/components/emoncms/manifest.json +1 -1
  149. homeassistant/components/emoncms_history/manifest.json +1 -1
  150. homeassistant/components/energy/translations/sv.json +4 -4
  151. homeassistant/components/environment_canada/translations/uk.json +7 -0
  152. homeassistant/components/esphome/translations/ca.json +1 -2
  153. homeassistant/components/esphome/translations/cs.json +3 -3
  154. homeassistant/components/esphome/translations/da.json +1 -2
  155. homeassistant/components/esphome/translations/de.json +4 -4
  156. homeassistant/components/esphome/translations/el.json +1 -11
  157. homeassistant/components/esphome/translations/en-GB.json +7 -7
  158. homeassistant/components/esphome/translations/en.json +7 -7
  159. homeassistant/components/esphome/translations/es.json +6 -6
  160. homeassistant/components/esphome/translations/et.json +6 -6
  161. homeassistant/components/esphome/translations/fi.json +1 -2
  162. homeassistant/components/esphome/translations/fr.json +2 -12
  163. homeassistant/components/esphome/translations/ga.json +1 -8
  164. homeassistant/components/esphome/translations/he.json +1 -11
  165. homeassistant/components/esphome/translations/hu.json +1 -11
  166. homeassistant/components/esphome/translations/id.json +1 -2
  167. homeassistant/components/esphome/translations/it.json +2 -4
  168. homeassistant/components/esphome/translations/ja.json +1 -4
  169. homeassistant/components/esphome/translations/ko.json +1 -2
  170. homeassistant/components/esphome/translations/lt.json +6 -6
  171. homeassistant/components/esphome/translations/lv.json +1 -2
  172. homeassistant/components/esphome/translations/mk.json +0 -1
  173. homeassistant/components/esphome/translations/nb.json +1 -2
  174. homeassistant/components/esphome/translations/nl.json +1 -4
  175. homeassistant/components/esphome/translations/pl.json +6 -7
  176. homeassistant/components/esphome/translations/pt-BR.json +1 -2
  177. homeassistant/components/esphome/translations/pt.json +7 -7
  178. homeassistant/components/esphome/translations/ro.json +1 -2
  179. homeassistant/components/esphome/translations/ru.json +5 -5
  180. homeassistant/components/esphome/translations/sk.json +5 -5
  181. homeassistant/components/esphome/translations/sl.json +1 -11
  182. homeassistant/components/esphome/translations/sv.json +1 -11
  183. homeassistant/components/esphome/translations/tr.json +1 -4
  184. homeassistant/components/esphome/translations/uk.json +3 -3
  185. homeassistant/components/esphome/translations/vi.json +1 -4
  186. homeassistant/components/esphome/translations/zh-Hans.json +6 -6
  187. homeassistant/components/esphome/translations/zh-Hant.json +6 -6
  188. homeassistant/components/eufylife_ble/translations/uk.json +13 -0
  189. homeassistant/components/fan/translations/ca.json +3 -0
  190. homeassistant/components/fan/translations/pl.json +2 -2
  191. homeassistant/components/feedreader/translations/es.json +1 -1
  192. homeassistant/components/fibaro/translations/pt.json +1 -1
  193. homeassistant/components/fivem/translations/uk.json +7 -0
  194. homeassistant/components/fjaraskupan/translations/uk.json +15 -0
  195. homeassistant/components/flipr/translations/pt.json +1 -1
  196. homeassistant/components/flipr/translations/uk.json +21 -0
  197. homeassistant/components/flux_led/translations/uk.json +12 -0
  198. homeassistant/components/freebox/translations/de.json +1 -1
  199. homeassistant/components/fronius/translations/mk.json +1 -0
  200. homeassistant/components/fronius/translations/pt.json +4 -4
  201. homeassistant/components/fronius/translations/vi.json +9 -0
  202. homeassistant/components/fully_kiosk/translations/uk.json +17 -0
  203. homeassistant/components/fyta/translations/pt.json +1 -1
  204. homeassistant/components/gardena_bluetooth/translations/de.json +1 -1
  205. homeassistant/components/gardena_bluetooth/translations/pl.json +1 -1
  206. homeassistant/components/generic_thermostat/translations/mk.json +20 -0
  207. homeassistant/components/github/translations/pt.json +1 -1
  208. homeassistant/components/google_cloud/translations/pt.json +1 -0
  209. homeassistant/components/google_cloud/translations/uk.json +32 -0
  210. homeassistant/components/google_mail/translations/pl.json +1 -1
  211. homeassistant/components/google_photos/translations/uk.json +51 -0
  212. homeassistant/components/group/translations/mk.json +1 -0
  213. homeassistant/components/group/translations/pl.json +6 -6
  214. homeassistant/components/guardian/translations/de.json +1 -1
  215. homeassistant/components/habitica/manifest.json +1 -1
  216. homeassistant/components/hassio/translations/ca.json +0 -2
  217. homeassistant/components/hassio/translations/cs.json +3 -3
  218. homeassistant/components/hassio/translations/de.json +11 -11
  219. homeassistant/components/hassio/translations/el.json +0 -8
  220. homeassistant/components/hassio/translations/en-GB.json +4 -4
  221. homeassistant/components/hassio/translations/en.json +4 -4
  222. homeassistant/components/hassio/translations/es.json +4 -4
  223. homeassistant/components/hassio/translations/et.json +4 -4
  224. homeassistant/components/hassio/translations/fi.json +0 -2
  225. homeassistant/components/hassio/translations/fr.json +0 -8
  226. homeassistant/components/hassio/translations/ga.json +0 -8
  227. homeassistant/components/hassio/translations/he.json +0 -8
  228. homeassistant/components/hassio/translations/hu.json +0 -8
  229. homeassistant/components/hassio/translations/id.json +0 -8
  230. homeassistant/components/hassio/translations/it.json +0 -2
  231. homeassistant/components/hassio/translations/ja.json +0 -8
  232. homeassistant/components/hassio/translations/ko.json +0 -7
  233. homeassistant/components/hassio/translations/lt.json +4 -4
  234. homeassistant/components/hassio/translations/nb.json +0 -2
  235. homeassistant/components/hassio/translations/nl.json +0 -8
  236. homeassistant/components/hassio/translations/pl.json +0 -2
  237. homeassistant/components/hassio/translations/pt-BR.json +0 -2
  238. homeassistant/components/hassio/translations/pt.json +4 -4
  239. homeassistant/components/hassio/translations/ro.json +0 -2
  240. homeassistant/components/hassio/translations/ru.json +2 -4
  241. homeassistant/components/hassio/translations/sk.json +3 -3
  242. homeassistant/components/hassio/translations/sl.json +0 -8
  243. homeassistant/components/hassio/translations/sv.json +0 -8
  244. homeassistant/components/hassio/translations/tr.json +0 -8
  245. homeassistant/components/hassio/translations/uk.json +0 -2
  246. homeassistant/components/hassio/translations/vi.json +0 -8
  247. homeassistant/components/hassio/translations/zh-Hans.json +4 -4
  248. homeassistant/components/hassio/translations/zh-Hant.json +4 -4
  249. homeassistant/components/hive/translations/pl.json +3 -3
  250. homeassistant/components/holiday/manifest.json +1 -1
  251. homeassistant/components/home_connect/translations/pl.json +13 -13
  252. homeassistant/components/home_connect/translations/pt.json +3 -3
  253. homeassistant/components/homeassistant/translations/uk.json +4 -0
  254. homeassistant/components/homeassistant_hardware/translations/bg.json +0 -12
  255. homeassistant/components/homeassistant_hardware/translations/ca.json +0 -7
  256. homeassistant/components/homeassistant_hardware/translations/cs.json +4 -4
  257. homeassistant/components/homeassistant_hardware/translations/de.json +4 -4
  258. homeassistant/components/homeassistant_hardware/translations/el.json +0 -8
  259. homeassistant/components/homeassistant_hardware/translations/en-GB.json +4 -4
  260. homeassistant/components/homeassistant_hardware/translations/en.json +4 -4
  261. homeassistant/components/homeassistant_hardware/translations/es.json +4 -4
  262. homeassistant/components/homeassistant_hardware/translations/et.json +4 -4
  263. homeassistant/components/homeassistant_hardware/translations/fr.json +0 -8
  264. homeassistant/components/homeassistant_hardware/translations/ga.json +0 -8
  265. homeassistant/components/homeassistant_hardware/translations/he.json +0 -8
  266. homeassistant/components/homeassistant_hardware/translations/hu.json +0 -8
  267. homeassistant/components/homeassistant_hardware/translations/id.json +0 -8
  268. homeassistant/components/homeassistant_hardware/translations/it.json +0 -9
  269. homeassistant/components/homeassistant_hardware/translations/ja.json +0 -8
  270. homeassistant/components/homeassistant_hardware/translations/ko.json +0 -8
  271. homeassistant/components/homeassistant_hardware/translations/lt.json +4 -4
  272. homeassistant/components/homeassistant_hardware/translations/mk.json +10 -0
  273. homeassistant/components/homeassistant_hardware/translations/nl.json +0 -7
  274. homeassistant/components/homeassistant_hardware/translations/pl.json +0 -12
  275. homeassistant/components/homeassistant_hardware/translations/pt.json +5 -5
  276. homeassistant/components/homeassistant_hardware/translations/ru.json +0 -8
  277. homeassistant/components/homeassistant_hardware/translations/sk.json +4 -4
  278. homeassistant/components/homeassistant_hardware/translations/sv.json +0 -8
  279. homeassistant/components/homeassistant_hardware/translations/tr.json +0 -8
  280. homeassistant/components/homeassistant_hardware/translations/zh-Hans.json +4 -4
  281. homeassistant/components/homeassistant_hardware/translations/zh-Hant.json +4 -4
  282. homeassistant/components/homeassistant_sky_connect/translations/cs.json +8 -8
  283. homeassistant/components/homeassistant_sky_connect/translations/de.json +8 -8
  284. homeassistant/components/homeassistant_sky_connect/translations/en-GB.json +8 -8
  285. homeassistant/components/homeassistant_sky_connect/translations/en.json +8 -8
  286. homeassistant/components/homeassistant_sky_connect/translations/es.json +8 -8
  287. homeassistant/components/homeassistant_sky_connect/translations/et.json +8 -8
  288. homeassistant/components/homeassistant_sky_connect/translations/lt.json +8 -8
  289. homeassistant/components/homeassistant_sky_connect/translations/pt.json +10 -10
  290. homeassistant/components/homeassistant_sky_connect/translations/sk.json +8 -8
  291. homeassistant/components/homeassistant_sky_connect/translations/zh-Hans.json +8 -8
  292. homeassistant/components/homeassistant_sky_connect/translations/zh-Hant.json +8 -8
  293. homeassistant/components/homeassistant_yellow/translations/cs.json +4 -4
  294. homeassistant/components/homeassistant_yellow/translations/de.json +4 -4
  295. homeassistant/components/homeassistant_yellow/translations/en-GB.json +4 -4
  296. homeassistant/components/homeassistant_yellow/translations/en.json +4 -4
  297. homeassistant/components/homeassistant_yellow/translations/es.json +4 -4
  298. homeassistant/components/homeassistant_yellow/translations/et.json +4 -4
  299. homeassistant/components/homeassistant_yellow/translations/fa.json +1 -0
  300. homeassistant/components/homeassistant_yellow/translations/lt.json +4 -4
  301. homeassistant/components/homeassistant_yellow/translations/mk.json +1 -0
  302. homeassistant/components/homeassistant_yellow/translations/pt.json +5 -5
  303. homeassistant/components/homeassistant_yellow/translations/sk.json +4 -4
  304. homeassistant/components/homeassistant_yellow/translations/zh-Hans.json +4 -4
  305. homeassistant/components/homeassistant_yellow/translations/zh-Hant.json +4 -4
  306. homeassistant/components/homee/translations/pl.json +4 -4
  307. homeassistant/components/homee/translations/pt.json +1 -1
  308. homeassistant/components/homekit_controller/connection.py +34 -21
  309. homeassistant/components/homekit_controller/manifest.json +1 -1
  310. homeassistant/components/homekit_controller/translations/mk.json +11 -0
  311. homeassistant/components/homekit_controller/translations/pl.json +1 -1
  312. homeassistant/components/homekit_controller/translations/sensor.pl.json +1 -1
  313. homeassistant/components/honeywell/translations/cs.json +0 -3
  314. homeassistant/components/honeywell/translations/de.json +1 -1
  315. homeassistant/components/honeywell/translations/el.json +0 -3
  316. homeassistant/components/honeywell/translations/en-GB.json +1 -1
  317. homeassistant/components/honeywell/translations/en.json +1 -1
  318. homeassistant/components/honeywell/translations/es.json +0 -3
  319. homeassistant/components/honeywell/translations/et.json +0 -3
  320. homeassistant/components/honeywell/translations/fi.json +0 -3
  321. homeassistant/components/honeywell/translations/ga.json +0 -3
  322. homeassistant/components/honeywell/translations/gl.json +0 -3
  323. homeassistant/components/honeywell/translations/hu.json +0 -3
  324. homeassistant/components/honeywell/translations/ja.json +0 -3
  325. homeassistant/components/honeywell/translations/lt.json +0 -3
  326. homeassistant/components/honeywell/translations/pt.json +0 -3
  327. homeassistant/components/honeywell/translations/ru.json +0 -3
  328. homeassistant/components/honeywell/translations/sk.json +0 -3
  329. homeassistant/components/honeywell/translations/sv.json +0 -3
  330. homeassistant/components/honeywell/translations/tr.json +0 -3
  331. homeassistant/components/honeywell/translations/zh-Hans.json +0 -3
  332. homeassistant/components/honeywell/translations/zh-Hant.json +0 -3
  333. homeassistant/components/html5/translations/pt.json +1 -1
  334. homeassistant/components/html5/translations/uk.json +29 -0
  335. homeassistant/components/hue/translations/da.json +1 -0
  336. homeassistant/components/hue/translations/pl.json +2 -2
  337. homeassistant/components/humidifier/translations/mk.json +13 -0
  338. homeassistant/components/humidifier/translations/pl.json +3 -3
  339. homeassistant/components/icloud/translations/ca.json +1 -5
  340. homeassistant/components/icloud/translations/cs.json +10 -10
  341. homeassistant/components/icloud/translations/da.json +1 -4
  342. homeassistant/components/icloud/translations/de.json +9 -9
  343. homeassistant/components/icloud/translations/el.json +1 -7
  344. homeassistant/components/icloud/translations/en-GB.json +10 -10
  345. homeassistant/components/icloud/translations/en.json +10 -10
  346. homeassistant/components/icloud/translations/es-419.json +1 -6
  347. homeassistant/components/icloud/translations/es.json +10 -10
  348. homeassistant/components/icloud/translations/et.json +10 -10
  349. homeassistant/components/icloud/translations/fi.json +1 -5
  350. homeassistant/components/icloud/translations/fr.json +1 -10
  351. homeassistant/components/icloud/translations/ga.json +1 -10
  352. homeassistant/components/icloud/translations/he.json +1 -7
  353. homeassistant/components/icloud/translations/hu.json +1 -10
  354. homeassistant/components/icloud/translations/id.json +1 -9
  355. homeassistant/components/icloud/translations/it.json +1 -9
  356. homeassistant/components/icloud/translations/ja.json +1 -9
  357. homeassistant/components/icloud/translations/ko.json +1 -5
  358. homeassistant/components/icloud/translations/lb.json +1 -4
  359. homeassistant/components/icloud/translations/lt.json +10 -10
  360. homeassistant/components/icloud/translations/mk.json +14 -0
  361. homeassistant/components/icloud/translations/nb.json +1 -4
  362. homeassistant/components/icloud/translations/nl.json +1 -9
  363. homeassistant/components/icloud/translations/pl.json +1 -4
  364. homeassistant/components/icloud/translations/pt-BR.json +1 -5
  365. homeassistant/components/icloud/translations/pt.json +5 -9
  366. homeassistant/components/icloud/translations/ro.json +1 -4
  367. homeassistant/components/icloud/translations/ru.json +2 -8
  368. homeassistant/components/icloud/translations/sk.json +10 -10
  369. homeassistant/components/icloud/translations/sl.json +1 -5
  370. homeassistant/components/icloud/translations/sv.json +1 -10
  371. homeassistant/components/icloud/translations/tr.json +1 -10
  372. homeassistant/components/icloud/translations/uk.json +1 -5
  373. homeassistant/components/icloud/translations/vi.json +2 -6
  374. homeassistant/components/icloud/translations/zh-Hans.json +9 -9
  375. homeassistant/components/icloud/translations/zh-Hant.json +10 -10
  376. homeassistant/components/imeon_inverter/manifest.json +1 -1
  377. homeassistant/components/improv_ble/translations/ca.json +0 -1
  378. homeassistant/components/improv_ble/translations/cs.json +1 -1
  379. homeassistant/components/improv_ble/translations/de.json +5 -5
  380. homeassistant/components/improv_ble/translations/el.json +0 -1
  381. homeassistant/components/improv_ble/translations/en-GB.json +1 -1
  382. homeassistant/components/improv_ble/translations/en.json +1 -1
  383. homeassistant/components/improv_ble/translations/es.json +1 -1
  384. homeassistant/components/improv_ble/translations/et.json +1 -1
  385. homeassistant/components/improv_ble/translations/fi.json +0 -1
  386. homeassistant/components/improv_ble/translations/fr.json +0 -1
  387. homeassistant/components/improv_ble/translations/ga.json +0 -1
  388. homeassistant/components/improv_ble/translations/gl.json +1 -2
  389. homeassistant/components/improv_ble/translations/he.json +0 -1
  390. homeassistant/components/improv_ble/translations/hu.json +0 -1
  391. homeassistant/components/improv_ble/translations/id.json +0 -1
  392. homeassistant/components/improv_ble/translations/it.json +0 -1
  393. homeassistant/components/improv_ble/translations/ja.json +0 -1
  394. homeassistant/components/improv_ble/translations/ko.json +0 -1
  395. homeassistant/components/improv_ble/translations/lt.json +1 -1
  396. homeassistant/components/improv_ble/translations/pt.json +1 -1
  397. homeassistant/components/improv_ble/translations/ru.json +0 -1
  398. homeassistant/components/improv_ble/translations/sk.json +1 -1
  399. homeassistant/components/improv_ble/translations/sv.json +0 -1
  400. homeassistant/components/improv_ble/translations/tr.json +0 -1
  401. homeassistant/components/improv_ble/translations/zh-Hans.json +1 -1
  402. homeassistant/components/improv_ble/translations/zh-Hant.json +1 -1
  403. homeassistant/components/input_boolean/translations/pl.json +2 -2
  404. homeassistant/components/insteon/translations/de.json +1 -1
  405. homeassistant/components/intellifire/translations/pt.json +1 -1
  406. homeassistant/components/ipma/translations/uk.json +3 -0
  407. homeassistant/components/iron_os/translations/pl.json +6 -6
  408. homeassistant/components/ista_ecotrend/translations/pt.json +3 -3
  409. homeassistant/components/jewish_calendar/translations/pt.json +1 -1
  410. homeassistant/components/jvc_projector/translations/pl.json +1 -1
  411. homeassistant/components/kitchen_sink/translations/de.json +2 -2
  412. homeassistant/components/knx/storage/entity_store_schema.py +13 -9
  413. homeassistant/components/knx/translations/pt.json +1 -1
  414. homeassistant/components/lamarzocco/__init__.py +34 -24
  415. homeassistant/components/lamarzocco/config_flow.py +13 -4
  416. homeassistant/components/lamarzocco/const.py +1 -0
  417. homeassistant/components/lamarzocco/manifest.json +1 -1
  418. homeassistant/components/lawn_mower/translations/pl.json +1 -1
  419. homeassistant/components/lektrico/translations/pl.json +1 -1
  420. homeassistant/components/letpot/translations/pt.json +1 -1
  421. homeassistant/components/lg_thinq/translations/pl.json +20 -20
  422. homeassistant/components/lg_thinq/translations/pt.json +10 -10
  423. homeassistant/components/lg_thinq/translations/uk.json +38 -0
  424. homeassistant/components/lidarr/translations/pt.json +1 -1
  425. homeassistant/components/light/translations/ca.json +2 -1
  426. homeassistant/components/light/translations/pl.json +2 -2
  427. homeassistant/components/light/translations/uk.json +19 -0
  428. homeassistant/components/litterrobot/translations/pl.json +3 -3
  429. homeassistant/components/litterrobot/translations/sensor.pl.json +2 -2
  430. homeassistant/components/litterrobot/translations/uk.json +21 -0
  431. homeassistant/components/lock/translations/pl.json +5 -5
  432. homeassistant/components/lutron_caseta/translations/pl.json +2 -2
  433. homeassistant/components/matter/translations/ca.json +3 -0
  434. homeassistant/components/matter/translations/pl.json +3 -3
  435. homeassistant/components/matter/translations/pt.json +6 -0
  436. homeassistant/components/matter/translations/ru.json +6 -0
  437. homeassistant/components/media_player/translations/pl.json +7 -7
  438. homeassistant/components/melcloud/translations/pt.json +2 -2
  439. homeassistant/components/metoffice/translations/pt.json +1 -1
  440. homeassistant/components/miele/coordinator.py +18 -2
  441. homeassistant/components/miele/translations/pt.json +2 -2
  442. homeassistant/components/miele/translations/sv.json +3 -3
  443. homeassistant/components/monarch_money/translations/pt.json +2 -2
  444. homeassistant/components/motionmount/translations/en-GB.json +4 -1
  445. homeassistant/components/motionmount/translations/lt.json +4 -1
  446. homeassistant/components/motionmount/translations/pt.json +4 -1
  447. homeassistant/components/motionmount/translations/zh-Hans.json +4 -1
  448. homeassistant/components/motionmount/translations/zh-Hant.json +4 -1
  449. homeassistant/components/mqtt/translations/cs.json +1 -1
  450. homeassistant/components/mqtt/translations/de.json +3 -3
  451. homeassistant/components/mqtt/translations/en-GB.json +1 -1
  452. homeassistant/components/mqtt/translations/en.json +1 -1
  453. homeassistant/components/mqtt/translations/es.json +2 -2
  454. homeassistant/components/mqtt/translations/et.json +1 -1
  455. homeassistant/components/mqtt/translations/ga.json +0 -1
  456. homeassistant/components/mqtt/translations/he.json +0 -1
  457. homeassistant/components/mqtt/translations/hu.json +0 -1
  458. homeassistant/components/mqtt/translations/it.json +0 -1
  459. homeassistant/components/mqtt/translations/lt.json +3 -2
  460. homeassistant/components/mqtt/translations/nl.json +0 -1
  461. homeassistant/components/mqtt/translations/pl.json +1 -1
  462. homeassistant/components/mqtt/translations/pt.json +3 -3
  463. homeassistant/components/mqtt/translations/ru.json +5 -0
  464. homeassistant/components/mqtt/translations/sk.json +1 -1
  465. homeassistant/components/mqtt/translations/sv.json +1 -1
  466. homeassistant/components/mqtt/translations/zh-Hans.json +1 -1
  467. homeassistant/components/mqtt/translations/zh-Hant.json +1 -1
  468. homeassistant/components/music_assistant/translations/pt.json +1 -1
  469. homeassistant/components/nanoleaf/translations/de.json +1 -1
  470. homeassistant/components/netgear/translations/de.json +1 -1
  471. homeassistant/components/nice_go/translations/pt.json +2 -2
  472. homeassistant/components/notion/translations/uk.json +13 -0
  473. homeassistant/components/ntfy/translations/ru.json +82 -0
  474. homeassistant/components/nut/translations/pt.json +1 -1
  475. homeassistant/components/ohme/translations/pl.json +1 -1
  476. homeassistant/components/ohme/translations/pt.json +1 -1
  477. homeassistant/components/onedrive/translations/pt.json +1 -1
  478. homeassistant/components/onewire/translations/vi.json +5 -0
  479. homeassistant/components/onvif/translations/de.json +1 -1
  480. homeassistant/components/onvif/translations/pt.json +3 -1
  481. homeassistant/components/onvif/translations/ru.json +3 -1
  482. homeassistant/components/openai_conversation/translations/pt.json +1 -1
  483. homeassistant/components/opentherm_gw/translations/mk.json +9 -0
  484. homeassistant/components/opower/manifest.json +1 -1
  485. homeassistant/components/overkiz/translations/pl.json +6 -6
  486. homeassistant/components/person/translations/mk.json +9 -0
  487. homeassistant/components/plugwise/translations/mk.json +11 -0
  488. homeassistant/components/plugwise/translations/pl.json +2 -2
  489. homeassistant/components/plugwise/translations/uk.json +6 -0
  490. homeassistant/components/plum_lightpad/translations/pt.json +1 -1
  491. homeassistant/components/poolsense/translations/pt.json +1 -1
  492. homeassistant/components/powerfox/translations/pt.json +2 -2
  493. homeassistant/components/powerwall/translations/uk.json +6 -0
  494. homeassistant/components/prusalink/translations/pl.json +1 -1
  495. homeassistant/components/qnap/translations/uk.json +19 -0
  496. homeassistant/components/random/translations/es.json +1 -1
  497. homeassistant/components/random/translations/sv.json +1 -1
  498. homeassistant/components/recorder/translations/vi.json +5 -0
  499. homeassistant/components/rehlko/translations/pt.json +1 -1
  500. homeassistant/components/remote/translations/ca.json +3 -0
  501. homeassistant/components/remote/translations/pl.json +2 -2
  502. homeassistant/components/renault/translations/pt.json +1 -1
  503. homeassistant/components/renson/translations/pl.json +4 -4
  504. homeassistant/components/reolink/translations/es.json +3 -0
  505. homeassistant/components/reolink/translations/mk.json +5 -0
  506. homeassistant/components/reolink/translations/pl.json +11 -11
  507. homeassistant/components/reolink/translations/pt.json +3 -0
  508. homeassistant/components/reolink/translations/zh-Hans.json +3 -0
  509. homeassistant/components/rituals_perfume_genie/translations/pt.json +1 -1
  510. homeassistant/components/roborock/translations/de.json +2 -2
  511. homeassistant/components/roborock/translations/pl.json +3 -3
  512. homeassistant/components/roborock/translations/pt.json +1 -1
  513. homeassistant/components/ruckus_unleashed/translations/de.json +1 -1
  514. homeassistant/components/rympro/translations/pt.json +1 -1
  515. homeassistant/components/schedule/translations/pl.json +2 -2
  516. homeassistant/components/script/translations/de.json +1 -1
  517. homeassistant/components/script/translations/pl.json +2 -2
  518. homeassistant/components/sense/translations/pt.json +1 -1
  519. homeassistant/components/sensibo/translations/pl.json +27 -27
  520. homeassistant/components/sensor/translations/pl.json +2 -2
  521. homeassistant/components/sensorpush_cloud/translations/pt.json +1 -1
  522. homeassistant/components/sensoterra/translations/pt.json +2 -2
  523. homeassistant/components/shelly/translations/pl.json +3 -3
  524. homeassistant/components/shelly/translations/pt.json +1 -1
  525. homeassistant/components/simplisafe/translations/uk.json +7 -0
  526. homeassistant/components/siren/translations/pl.json +2 -2
  527. homeassistant/components/skybell/translations/pt.json +1 -1
  528. homeassistant/components/smarla/translations/pt.json +1 -1
  529. homeassistant/components/smartthings/translations/fr.json +28 -0
  530. homeassistant/components/smartthings/translations/pl.json +2 -2
  531. homeassistant/components/smartthings/translations/pt.json +1 -1
  532. homeassistant/components/smarttub/translations/pt.json +1 -1
  533. homeassistant/components/snooz/translations/es.json +1 -1
  534. homeassistant/components/sonos/media_player.py +1 -1
  535. homeassistant/components/sql/translations/pt.json +4 -0
  536. homeassistant/components/sql/translations/uk.json +1 -0
  537. homeassistant/components/stookwijzer/translations/es.json +1 -1
  538. homeassistant/components/switch/translations/ca.json +3 -0
  539. homeassistant/components/switch/translations/pl.json +2 -2
  540. homeassistant/components/tado/translations/it.json +6 -0
  541. homeassistant/components/technove/translations/de.json +1 -1
  542. homeassistant/components/tedee/translations/de.json +2 -2
  543. homeassistant/components/telegram_bot/translations/pt.json +2 -2
  544. homeassistant/components/template/translations/ca.json +17 -0
  545. homeassistant/components/template/translations/es.json +1 -1
  546. homeassistant/components/template/translations/lt.json +14 -2
  547. homeassistant/components/template/translations/pt.json +2 -2
  548. homeassistant/components/template/translations/sv.json +1 -1
  549. homeassistant/components/tesla_fleet/translations/pl.json +6 -6
  550. homeassistant/components/teslemetry/translations/de.json +1 -1
  551. homeassistant/components/teslemetry/translations/ko.json +5 -0
  552. homeassistant/components/teslemetry/translations/pl.json +1 -1
  553. homeassistant/components/teslemetry/translations/pt.json +2 -2
  554. homeassistant/components/tessie/translations/pl.json +11 -11
  555. homeassistant/components/tile/translations/pt.json +1 -1
  556. homeassistant/components/timer/translations/lt.json +1 -1
  557. homeassistant/components/timer/translations/pl.json +1 -1
  558. homeassistant/components/tod/translations/sv.json +2 -2
  559. homeassistant/components/tomorrowio/translations/vi.json +1 -0
  560. homeassistant/components/totalconnect/translations/pt.json +1 -1
  561. homeassistant/components/tplink_omada/translations/pl.json +2 -2
  562. homeassistant/components/tractive/translations/de.json +1 -1
  563. homeassistant/components/tractive/translations/pt.json +1 -1
  564. homeassistant/components/trafikverket_ferry/translations/uk.json +22 -0
  565. homeassistant/components/trafikverket_train/translations/pt.json +1 -1
  566. homeassistant/components/trafikverket_weatherstation/translations/uk.json +13 -0
  567. homeassistant/components/tuya/translations/ja.json +4 -1
  568. homeassistant/components/tuya/translations/pl.json +9 -9
  569. homeassistant/components/tuya/translations/pt.json +9 -0
  570. homeassistant/components/tuya/translations/ru.json +9 -0
  571. homeassistant/components/tuya/translations/select.pl.json +5 -5
  572. homeassistant/components/tuya/translations/uk.json +11 -0
  573. homeassistant/components/unifi/translations/pl.json +2 -2
  574. homeassistant/components/update/translations/ca.json +3 -0
  575. homeassistant/components/vacuum/translations/pl.json +3 -3
  576. homeassistant/components/vallox/translations/mk.json +9 -0
  577. homeassistant/components/valve/translations/pl.json +3 -2
  578. homeassistant/components/velbus/translations/de.json +1 -1
  579. homeassistant/components/verisure/translations/pt.json +2 -2
  580. homeassistant/components/vesync/translations/pl.json +1 -1
  581. homeassistant/components/vesync/translations/pt.json +2 -2
  582. homeassistant/components/vicare/translations/pt.json +1 -1
  583. homeassistant/components/voip/translations/cs.json +1 -1
  584. homeassistant/components/voip/translations/de.json +1 -1
  585. homeassistant/components/voip/translations/en-GB.json +1 -1
  586. homeassistant/components/voip/translations/en.json +1 -1
  587. homeassistant/components/voip/translations/es.json +1 -1
  588. homeassistant/components/voip/translations/et.json +1 -1
  589. homeassistant/components/voip/translations/fr.json +1 -1
  590. homeassistant/components/voip/translations/it.json +1 -1
  591. homeassistant/components/voip/translations/lt.json +1 -1
  592. homeassistant/components/voip/translations/pl.json +4 -4
  593. homeassistant/components/voip/translations/pt.json +2 -2
  594. homeassistant/components/voip/translations/ru.json +1 -1
  595. homeassistant/components/voip/translations/sk.json +1 -1
  596. homeassistant/components/voip/translations/zh-Hans.json +1 -1
  597. homeassistant/components/voip/translations/zh-Hant.json +1 -1
  598. homeassistant/components/water_heater/translations/pl.json +3 -3
  599. homeassistant/components/waterfurnace/manifest.json +1 -1
  600. homeassistant/components/watergate/translations/de.json +2 -2
  601. homeassistant/components/weatherflow/translations/es.json +1 -1
  602. homeassistant/components/webostv/translations/de.json +2 -2
  603. homeassistant/components/wled/translations/pl.json +2 -2
  604. homeassistant/components/wolflink/translations/sensor.pl.json +1 -1
  605. homeassistant/components/workday/manifest.json +1 -1
  606. homeassistant/components/wyoming/translations/cs.json +1 -1
  607. homeassistant/components/wyoming/translations/de.json +1 -1
  608. homeassistant/components/wyoming/translations/en-GB.json +1 -1
  609. homeassistant/components/wyoming/translations/en.json +1 -1
  610. homeassistant/components/wyoming/translations/es.json +1 -1
  611. homeassistant/components/wyoming/translations/et.json +1 -1
  612. homeassistant/components/wyoming/translations/fr.json +1 -1
  613. homeassistant/components/wyoming/translations/it.json +1 -1
  614. homeassistant/components/wyoming/translations/lt.json +1 -1
  615. homeassistant/components/wyoming/translations/pl.json +4 -4
  616. homeassistant/components/wyoming/translations/pt.json +1 -1
  617. homeassistant/components/wyoming/translations/ru.json +1 -1
  618. homeassistant/components/wyoming/translations/sk.json +1 -1
  619. homeassistant/components/wyoming/translations/zh-Hans.json +1 -1
  620. homeassistant/components/wyoming/translations/zh-Hant.json +1 -1
  621. homeassistant/components/xiaomi_miio/translations/pl.json +1 -1
  622. homeassistant/components/yale_smart_alarm/translations/pl.json +1 -1
  623. homeassistant/components/yale_smart_alarm/translations/pt.json +1 -1
  624. homeassistant/components/yamaha/translations/pl.json +1 -1
  625. homeassistant/components/yamaha_musiccast/translations/pl.json +1 -1
  626. homeassistant/components/yeelight/translations/pl.json +1 -1
  627. homeassistant/components/yolink/translations/pl.json +3 -3
  628. homeassistant/components/zha/translations/bg.json +5 -4
  629. homeassistant/components/zha/translations/pl.json +3 -0
  630. homeassistant/components/zha/translations/uk.json +15 -0
  631. homeassistant/components/zimi/translations/pt.json +1 -1
  632. homeassistant/components/zone/translations/uk.json +1 -0
  633. homeassistant/components/zwave_js/translations/ca.json +0 -1
  634. homeassistant/components/zwave_js/translations/cs.json +1 -1
  635. homeassistant/components/zwave_js/translations/de.json +1 -1
  636. homeassistant/components/zwave_js/translations/el.json +0 -1
  637. homeassistant/components/zwave_js/translations/en-GB.json +1 -1
  638. homeassistant/components/zwave_js/translations/en.json +1 -1
  639. homeassistant/components/zwave_js/translations/es.json +1 -1
  640. homeassistant/components/zwave_js/translations/et.json +1 -1
  641. homeassistant/components/zwave_js/translations/fi.json +0 -1
  642. homeassistant/components/zwave_js/translations/fr.json +0 -1
  643. homeassistant/components/zwave_js/translations/ga.json +0 -1
  644. homeassistant/components/zwave_js/translations/hu.json +0 -1
  645. homeassistant/components/zwave_js/translations/id.json +0 -1
  646. homeassistant/components/zwave_js/translations/it.json +0 -1
  647. homeassistant/components/zwave_js/translations/ja.json +0 -1
  648. homeassistant/components/zwave_js/translations/ko.json +0 -1
  649. homeassistant/components/zwave_js/translations/lt.json +1 -1
  650. homeassistant/components/zwave_js/translations/nb.json +0 -1
  651. homeassistant/components/zwave_js/translations/nl.json +0 -1
  652. homeassistant/components/zwave_js/translations/pl.json +0 -1
  653. homeassistant/components/zwave_js/translations/pt-BR.json +0 -1
  654. homeassistant/components/zwave_js/translations/pt.json +1 -1
  655. homeassistant/components/zwave_js/translations/ro.json +0 -1
  656. homeassistant/components/zwave_js/translations/ru.json +0 -1
  657. homeassistant/components/zwave_js/translations/sk.json +1 -1
  658. homeassistant/components/zwave_js/translations/sv.json +0 -1
  659. homeassistant/components/zwave_js/translations/tr.json +0 -1
  660. homeassistant/components/zwave_js/translations/uk.json +20 -1
  661. homeassistant/components/zwave_js/translations/vi.json +0 -1
  662. homeassistant/components/zwave_js/translations/zh-Hans.json +1 -1
  663. homeassistant/components/zwave_js/translations/zh-Hant.json +1 -1
  664. homeassistant/const.py +1 -1
  665. homeassistant/package_constraints.txt +2 -2
  666. {homeassistant-2025.9.2.dist-info → homeassistant-2025.9.4.dist-info}/METADATA +1 -1
  667. {homeassistant-2025.9.2.dist-info → homeassistant-2025.9.4.dist-info}/RECORD +672 -654
  668. {homeassistant-2025.9.2.dist-info → homeassistant-2025.9.4.dist-info}/WHEEL +0 -0
  669. {homeassistant-2025.9.2.dist-info → homeassistant-2025.9.4.dist-info}/entry_points.txt +0 -0
  670. {homeassistant-2025.9.2.dist-info → homeassistant-2025.9.4.dist-info}/licenses/LICENSE.md +0 -0
  671. {homeassistant-2025.9.2.dist-info → homeassistant-2025.9.4.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  672. {homeassistant-2025.9.2.dist-info → homeassistant-2025.9.4.dist-info}/top_level.txt +0 -0
@@ -6,7 +6,7 @@
6
6
  "characteristic_missing": "Prietaisas jau prijungtas prie \u201eWi-Fi\u201c arba nebegali prisijungti prie \u201eWi-Fi\u201c. Jei norite prijungti j\u012f prie kito tinklo, pirmiausia pabandykite atkurti gamyklinius nustatymus.",
7
7
  "no_devices_found": "Tinkle nerasta joki\u0173 prietais\u0173",
8
8
  "provision_successful": "Prietaisas s\u0117kmingai prisijung\u0117 prie \u201eWi-Fi\u201c tinklo.",
9
- "provision_successful_url": "Prietaisas s\u0117kmingai prisijung\u0117 prie \u201eWi-Fi\u201c tinklo. \n\n Apsilankykite adresu {url} , kad u\u017ebaigtum\u0117te s\u0105rank\u0105.",
9
+ "provision_successful_url": "\u012erenginys s\u0117kmingai prijungtas prie Wi-Fi tinklo. \n \n U\u017ebaikite s\u0105rank\u0105 vadovaudamiesi [s\u0105rankos instrukcijomis]( {url} ).",
10
10
  "unknown": "Netik\u0117ta klaida"
11
11
  },
12
12
  "error": {
@@ -6,7 +6,7 @@
6
6
  "characteristic_missing": "O dispositivo j\u00e1 est\u00e1 ligado ao Wi-Fi ou j\u00e1 n\u00e3o consegue ligar-se ao Wi-Fi. Se pretender lig\u00e1-lo a outra rede, tente primeiro fazer uma reposi\u00e7\u00e3o de f\u00e1brica.",
7
7
  "no_devices_found": "Nenhum dispositivo encontrado na rede",
8
8
  "provision_successful": "O dispositivo ligou-se com \u00eaxito \u00e0 rede Wi-Fi.",
9
- "provision_successful_url": "O dispositivo ligou-se com \u00eaxito \u00e0 rede Wi-Fi.\n\nVisite {url} para concluir a configura\u00e7\u00e3o.",
9
+ "provision_successful_url": "O dispositivo ligou-se com \u00eaxito \u00e0 rede Wi-Fi.\n\nConclua a configura\u00e7\u00e3o seguindo as [instru\u00e7\u00f5es de configura\u00e7\u00e3o]({url}).",
10
10
  "unknown": "Erro inesperado"
11
11
  },
12
12
  "error": {
@@ -6,7 +6,6 @@
6
6
  "characteristic_missing": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043b\u0438\u0431\u043e \u0443\u0436\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043a Wi-Fi, \u043b\u0438\u0431\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a Wi-Fi. \u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0433\u043e \u043a \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0435\u0442\u0438, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u0431\u0440\u043e\u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043a \u0437\u0430\u0432\u043e\u0434\u0441\u043a\u0438\u043c.",
7
7
  "no_devices_found": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0432 \u0441\u0435\u0442\u0438",
8
8
  "provision_successful": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u043e\u0441\u044c \u043a \u0441\u0435\u0442\u0438 Wi-Fi.",
9
- "provision_successful_url": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u043e\u0441\u044c \u043a \u0441\u0435\u0442\u0438 Wi-Fi.\n\n\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043f\u043e {url}, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443.",
10
9
  "unknown": "\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430"
11
10
  },
12
11
  "error": {
@@ -6,7 +6,7 @@
6
6
  "characteristic_missing": "Zariadenie je bu\u010f u\u017e pripojen\u00e9 k sieti Wi-Fi, alebo sa u\u017e nem\u00f4\u017ee pripoji\u0165 k sieti Wi-Fi. Ak ho chcete pripoji\u0165 k inej sieti, sk\u00faste ho najsk\u00f4r obnovi\u0165 z v\u00fdroby.",
7
7
  "no_devices_found": "V sieti sa nena\u0161li \u017eiadne zariadenia",
8
8
  "provision_successful": "Zariadenie sa \u00faspe\u0161ne pripojilo k sieti Wi-Fi.",
9
- "provision_successful_url": "Zariadenie sa \u00faspe\u0161ne pripojilo k sieti Wi-Fi. \n\n Ak chcete dokon\u010di\u0165 nastavenie, nav\u0161t\u00edvte str\u00e1nku {url}.",
9
+ "provision_successful_url": "Zariadenie sa \u00faspe\u0161ne pripojilo k sieti Wi-Fi. \n\nDokon\u010dite nastavenie pod\u013ea [pokynov na nastavenie]({url}).",
10
10
  "unknown": "Neo\u010dak\u00e1van\u00e1 chyba"
11
11
  },
12
12
  "error": {
@@ -6,7 +6,6 @@
6
6
  "characteristic_missing": "Enheten \u00e4r antingen redan ansluten till Wi-Fi eller kan inte l\u00e4ngre ansluta till Wi-Fi. Om du vill ansluta den till ett annat n\u00e4tverk kan du f\u00f6rst f\u00f6rs\u00f6ka \u00e5terst\u00e4lla den till fabriksinst\u00e4llningarna.",
7
7
  "no_devices_found": "Inga enheter hittades i n\u00e4tverket",
8
8
  "provision_successful": "Enheten har anslutit till Wi-Fi-n\u00e4tverket.",
9
- "provision_successful_url": "Enheten har anslutit till Wi-Fi-n\u00e4tverket.\n\nBes\u00f6k {url} f\u00f6r att avsluta installationen.",
10
9
  "unknown": "Ov\u00e4ntat fel"
11
10
  },
12
11
  "error": {
@@ -6,7 +6,6 @@
6
6
  "characteristic_missing": "Cihaz ya zaten Wi-Fi'ye ba\u011fl\u0131 ya da art\u0131k Wi-Fi'ye ba\u011flanam\u0131yor. Ba\u015fka bir a\u011fa ba\u011flamak istiyorsan\u0131z \u00f6nce fabrika ayarlar\u0131na s\u0131f\u0131rlamay\u0131 deneyin.",
7
7
  "no_devices_found": "A\u011fda cihaz bulunamad\u0131",
8
8
  "provision_successful": "Cihaz Wi-Fi a\u011f\u0131na ba\u015far\u0131yla ba\u011fland\u0131.",
9
- "provision_successful_url": "Cihaz Wi-Fi a\u011f\u0131na ba\u015far\u0131yla ba\u011fland\u0131. \n\n Kurulumu tamamlamak i\u00e7in l\u00fctfen {url} ziyaret edin.",
10
9
  "unknown": "Beklenmeyen hata"
11
10
  },
12
11
  "error": {
@@ -6,7 +6,7 @@
6
6
  "characteristic_missing": "\u8bbe\u5907\u5df2\u8fde\u63a5\u5230\u65e0\u7ebf\u7f51\u7edc\uff0c\u6216\u8005\u65e0\u6cd5\u518d\u8fde\u63a5\u5230\u65e0\u7ebf\u7f51\u7edc\u3002\u5982\u679c\u60a8\u60f3\u8981\u5c06\u5176\u8fde\u63a5\u5230\u5176\u4ed6\u7f51\u7edc\uff0c\u8bf7\u5148\u5c1d\u8bd5\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u3002",
7
7
  "no_devices_found": "\u7f51\u7edc\u4e0a\u672a\u627e\u5230\u4efb\u4f55\u8bbe\u5907",
8
8
  "provision_successful": "\u8bbe\u5907\u5df2\u6210\u529f\u8fde\u63a5\u5230\u65e0\u7ebf\u7f51\u7edc\u3002",
9
- "provision_successful_url": "\u8bbe\u5907\u5df2\u6210\u529f\u8fde\u63a5\u5230\u65e0\u7ebf\u7f51\u7edc\u3002 \n\n\u8bf7\u8bbf\u95ee {url} \u5b8c\u6210\u8bbe\u7f6e\u3002",
9
+ "provision_successful_url": "\u8bbe\u5907\u5df2\u6210\u529f\u8fde\u63a5\u5230\u65e0\u7ebf\u7f51\u7edc\u3002 \n \n\u8bf7\u6309\u7167\u3010\u8bbe\u7f6e\u8bf4\u660e\u3011({url}) \u5b8c\u6210\u8bbe\u7f6e\u3002",
10
10
  "unknown": "\u610f\u5916\u9519\u8bef"
11
11
  },
12
12
  "error": {
@@ -6,7 +6,7 @@
6
6
  "characteristic_missing": "\u8a72\u88dd\u7f6e\u5df2\u7d93\u9023\u63a5\u5230 Wi-Fi\u3001\u6216\u7121\u6cd5\u518d\u9023\u63a5\u5230 Wi-Fi\u3002\u5982\u679c\u60a8\u60f3\u5c07\u5176\u9023\u63a5\u5230\u53e6\u4e00\u500b\u7db2\u8def\u3001\u8acb\u5148\u5617\u8a66\u6062\u5fa9\u5176\u51fa\u5ee0\u8a2d\u5b9a\u3002",
7
7
  "no_devices_found": "\u7db2\u8def\u4e0a\u627e\u4e0d\u5230\u88dd\u7f6e",
8
8
  "provision_successful": "\u88dd\u7f6e\u5df2\u6210\u529f\u9023\u7dda\u81f3 Wi-Fi \u7db2\u8def\u3002",
9
- "provision_successful_url": "\u88dd\u7f6e\u5df2\u6210\u529f\u9023\u7dda\u81f3 Wi-Fi \u7db2\u8def\u3002\n\n\u8acb\u700f\u89bd {url} \u4ee5\u5b8c\u6210\u8a2d\u5b9a\u3002",
9
+ "provision_successful_url": "\u88dd\u7f6e\u5df2\u6210\u529f\u9023\u7dda\u81f3 Wi-Fi \u7db2\u8def\u3002\n\n\u8acb\u8ddf\u96a8[\u8a2d\u5b9a\u6307\u5f15]({url}) \u5b8c\u6210\u8a2d\u5b9a\u3002",
10
10
  "unknown": "\u672a\u9810\u671f\u932f\u8aa4"
11
11
  },
12
12
  "error": {
@@ -3,8 +3,8 @@
3
3
  "_": {
4
4
  "name": "Prze\u0142\u0105cznik",
5
5
  "state": {
6
- "off": "wy\u0142\u0105czony",
7
- "on": "w\u0142\u0105czony"
6
+ "off": "wy\u0142\u0105czono",
7
+ "on": "w\u0142\u0105czono"
8
8
  },
9
9
  "state_attributes": {
10
10
  "editable": {
@@ -111,7 +111,7 @@
111
111
  },
112
112
  "services": {
113
113
  "add_all_link": {
114
- "description": "Weist das Insteon-Modem (IM) an, den All-Linking-Modus zu starten. Sobald sich das IM im All-Linking-Modus befindet, dr\u00fccke die Vderbindungstaste am Ger\u00e4t, um All-Linking abzuschlie\u00dfen.",
114
+ "description": "Weist das Insteon-Modem (IM) an, den All-Linking-Modus zu starten. Sobald sich das IM im All-Linking-Modus befindet, dr\u00fccke die Verbindungstaste am Ger\u00e4t, um All-Linking abzuschlie\u00dfen.",
115
115
  "fields": {
116
116
  "group": {
117
117
  "description": "All-Link-Gruppennummer.",
@@ -13,7 +13,7 @@
13
13
  "cloud_api": {
14
14
  "data": {
15
15
  "password": "Palavra-passe",
16
- "username": "E-mail"
16
+ "username": "Email"
17
17
  },
18
18
  "data_description": {
19
19
  "password": "A sua palavra-passe da aplica\u00e7\u00e3o IntelliFire",
@@ -15,6 +15,9 @@
15
15
  },
16
16
  "entity": {
17
17
  "sensor": {
18
+ "fire_risk": {
19
+ "name": "\u0420\u0438\u0437\u0438\u043a \u043f\u043e\u0436\u0435\u0436\u0456"
20
+ },
18
21
  "uv_index": {
19
22
  "name": "\u0423\u0424-\u0456\u043d\u0434\u0435\u043a\u0441"
20
23
  }
@@ -11,28 +11,28 @@
11
11
  "select": {
12
12
  "animation_speed": {
13
13
  "state": {
14
- "off": "wy\u0142\u0105czony"
14
+ "off": "wy\u0142\u0105czono"
15
15
  }
16
16
  },
17
17
  "autostart_mode": {
18
18
  "state": {
19
- "disabled": "wy\u0142\u0105czony"
19
+ "disabled": "wy\u0142\u0105czono"
20
20
  }
21
21
  },
22
22
  "locking_mode": {
23
23
  "state": {
24
- "off": "wy\u0142\u0105czony"
24
+ "off": "wy\u0142\u0105czono"
25
25
  }
26
26
  },
27
27
  "logo_duration": {
28
28
  "state": {
29
- "off": "wy\u0142\u0105czony"
29
+ "off": "wy\u0142\u0105czono"
30
30
  }
31
31
  },
32
32
  "usb_pd_mode": {
33
33
  "state": {
34
- "off": "wy\u0142\u0105czony",
35
- "on": "w\u0142\u0105czony"
34
+ "off": "wy\u0142\u0105czono",
35
+ "on": "w\u0142\u0105czono"
36
36
  }
37
37
  }
38
38
  },
@@ -14,7 +14,7 @@
14
14
  "step": {
15
15
  "reauth_confirm": {
16
16
  "data": {
17
- "email": "E-mail",
17
+ "email": "Email",
18
18
  "password": "Palavra-passe"
19
19
  },
20
20
  "data_description": {
@@ -26,7 +26,7 @@
26
26
  },
27
27
  "reconfigure": {
28
28
  "data": {
29
- "email": "E-mail",
29
+ "email": "Email",
30
30
  "password": "Palavra-passe"
31
31
  },
32
32
  "data_description": {
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "user": {
40
40
  "data": {
41
- "email": "E-mail",
41
+ "email": "Email",
42
42
  "password": "Palavra-passe"
43
43
  },
44
44
  "data_description": {
@@ -94,7 +94,7 @@
94
94
  "name": "Mincha Ketana"
95
95
  },
96
96
  "netz_hachama": {
97
- "name": "Halachic sunrise (Netz Hachama)"
97
+ "name": "Nascer do Sol Halachic (Netz Hachama)"
98
98
  },
99
99
  "omer_count": {
100
100
  "name": "Dia do Omer"
@@ -36,7 +36,7 @@
36
36
  "sensor": {
37
37
  "jvc_power_status": {
38
38
  "state": {
39
- "on": "w\u0142\u0105czony",
39
+ "on": "w\u0142\u0105czono",
40
40
  "standby": "tryb czuwania"
41
41
  }
42
42
  }
@@ -44,7 +44,7 @@
44
44
  "fix_flow": {
45
45
  "step": {
46
46
  "confirm": {
47
- "description": "Dr\u00fccke **OK**, um zu best\u00e4tigen, dass das Netzteil ausgetauscht wurde",
47
+ "description": "W\u00e4hle **OK**, um zu best\u00e4tigen, dass das Netzteil ausgetauscht wurde",
48
48
  "title": "Das Netzteil muss ausgetauscht werden"
49
49
  }
50
50
  }
@@ -63,7 +63,7 @@
63
63
  "fix_flow": {
64
64
  "step": {
65
65
  "confirm": {
66
- "description": "Dr\u00fccke **OK**, wenn die Blinkerfl\u00fcssigkeit nachgef\u00fcllt wurde",
66
+ "description": "W\u00e4hle **OK**, wenn die Blinkerfl\u00fcssigkeit nachgef\u00fcllt wurde",
67
67
  "title": "Blinkerfl\u00fcssigkeit muss nachgef\u00fcllt werden"
68
68
  }
69
69
  }
@@ -118,27 +118,31 @@ COVER_KNX_SCHEMA = AllSerializeFirst(
118
118
  vol.Schema(
119
119
  {
120
120
  "section_binary_control": KNXSectionFlat(),
121
- vol.Optional(CONF_GA_UP_DOWN): GASelector(state=False),
121
+ vol.Optional(CONF_GA_UP_DOWN): GASelector(state=False, valid_dpt="1"),
122
122
  vol.Optional(CoverConf.INVERT_UPDOWN): selector.BooleanSelector(),
123
123
  "section_stop_control": KNXSectionFlat(),
124
- vol.Optional(CONF_GA_STOP): GASelector(state=False),
125
- vol.Optional(CONF_GA_STEP): GASelector(state=False),
124
+ vol.Optional(CONF_GA_STOP): GASelector(state=False, valid_dpt="1"),
125
+ vol.Optional(CONF_GA_STEP): GASelector(state=False, valid_dpt="1"),
126
126
  "section_position_control": KNXSectionFlat(collapsible=True),
127
- vol.Optional(CONF_GA_POSITION_SET): GASelector(state=False),
128
- vol.Optional(CONF_GA_POSITION_STATE): GASelector(write=False),
127
+ vol.Optional(CONF_GA_POSITION_SET): GASelector(
128
+ state=False, valid_dpt="5.001"
129
+ ),
130
+ vol.Optional(CONF_GA_POSITION_STATE): GASelector(
131
+ write=False, valid_dpt="5.001"
132
+ ),
129
133
  vol.Optional(CoverConf.INVERT_POSITION): selector.BooleanSelector(),
130
134
  "section_tilt_control": KNXSectionFlat(collapsible=True),
131
- vol.Optional(CONF_GA_ANGLE): GASelector(),
135
+ vol.Optional(CONF_GA_ANGLE): GASelector(valid_dpt="5.001"),
132
136
  vol.Optional(CoverConf.INVERT_ANGLE): selector.BooleanSelector(),
133
137
  "section_travel_time": KNXSectionFlat(),
134
- vol.Optional(
138
+ vol.Required(
135
139
  CoverConf.TRAVELLING_TIME_UP, default=25
136
140
  ): selector.NumberSelector(
137
141
  selector.NumberSelectorConfig(
138
142
  min=0, max=1000, step=0.1, unit_of_measurement="s"
139
143
  )
140
144
  ),
141
- vol.Optional(
145
+ vol.Required(
142
146
  CoverConf.TRAVELLING_TIME_DOWN, default=25
143
147
  ): selector.NumberSelector(
144
148
  selector.NumberSelectorConfig(
@@ -310,7 +314,7 @@ LIGHT_KNX_SCHEMA = AllSerializeFirst(
310
314
  SWITCH_KNX_SCHEMA = vol.Schema(
311
315
  {
312
316
  "section_switch": KNXSectionFlat(),
313
- vol.Required(CONF_GA_SWITCH): GASelector(write_required=True),
317
+ vol.Required(CONF_GA_SWITCH): GASelector(write_required=True, valid_dpt="1"),
314
318
  vol.Optional(CONF_INVERT, default=False): selector.BooleanSelector(),
315
319
  vol.Optional(CONF_RESPOND_TO_READ, default=False): selector.BooleanSelector(),
316
320
  vol.Optional(CONF_SYNC_STATE, default=True): SyncStateSelector(),
@@ -375,7 +375,7 @@
375
375
  "options": {
376
376
  "5_001": "Porcento",
377
377
  "7_600": "Kelvin",
378
- "9": "ponto flutuante de 2 bytes"
378
+ "9": "Ponto flutuante de 2 bytes"
379
379
  }
380
380
  },
381
381
  "ga_switch": {
@@ -2,7 +2,9 @@
2
2
 
3
3
  import asyncio
4
4
  import logging
5
+ import uuid
5
6
 
7
+ from aiohttp import ClientSession
6
8
  from packaging import version
7
9
  from pylamarzocco import (
8
10
  LaMarzoccoBluetoothClient,
@@ -11,6 +13,7 @@ from pylamarzocco import (
11
13
  )
12
14
  from pylamarzocco.const import FirmwareType
13
15
  from pylamarzocco.exceptions import AuthFail, RequestNotSuccessful
16
+ from pylamarzocco.util import InstallationKey, generate_installation_key
14
17
 
15
18
  from homeassistant.components.bluetooth import async_discovered_service_info
16
19
  from homeassistant.const import (
@@ -19,13 +22,14 @@ from homeassistant.const import (
19
22
  CONF_TOKEN,
20
23
  CONF_USERNAME,
21
24
  Platform,
25
+ __version__,
22
26
  )
23
27
  from homeassistant.core import HomeAssistant
24
28
  from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
25
29
  from homeassistant.helpers import issue_registry as ir
26
30
  from homeassistant.helpers.aiohttp_client import async_create_clientsession
27
31
 
28
- from .const import CONF_USE_BLUETOOTH, DOMAIN
32
+ from .const import CONF_INSTALLATION_KEY, CONF_USE_BLUETOOTH, DOMAIN
29
33
  from .coordinator import (
30
34
  LaMarzoccoConfigEntry,
31
35
  LaMarzoccoConfigUpdateCoordinator,
@@ -60,7 +64,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: LaMarzoccoConfigEntry) -
60
64
  cloud_client = LaMarzoccoCloudClient(
61
65
  username=entry.data[CONF_USERNAME],
62
66
  password=entry.data[CONF_PASSWORD],
63
- client=async_create_clientsession(hass),
67
+ installation_key=InstallationKey.from_json(entry.data[CONF_INSTALLATION_KEY]),
68
+ client=create_client_session(hass),
64
69
  )
65
70
 
66
71
  try:
@@ -166,45 +171,50 @@ async def async_migrate_entry(
166
171
  hass: HomeAssistant, entry: LaMarzoccoConfigEntry
167
172
  ) -> bool:
168
173
  """Migrate config entry."""
169
- if entry.version > 3:
174
+ if entry.version > 4:
170
175
  # guard against downgrade from a future version
171
176
  return False
172
177
 
173
- if entry.version == 1:
178
+ if entry.version in (1, 2):
174
179
  _LOGGER.error(
175
- "Migration from version 1 is no longer supported, please remove and re-add the integration"
180
+ "Migration from version 1 or 2 is no longer supported, please remove and re-add the integration"
176
181
  )
177
182
  return False
178
183
 
179
- if entry.version == 2:
184
+ if entry.version == 3:
185
+ installation_key = generate_installation_key(str(uuid.uuid4()).lower())
180
186
  cloud_client = LaMarzoccoCloudClient(
181
187
  username=entry.data[CONF_USERNAME],
182
188
  password=entry.data[CONF_PASSWORD],
189
+ installation_key=installation_key,
190
+ client=create_client_session(hass),
183
191
  )
184
192
  try:
185
- things = await cloud_client.list_things()
193
+ await cloud_client.async_register_client()
186
194
  except (AuthFail, RequestNotSuccessful) as exc:
187
195
  _LOGGER.error("Migration failed with error %s", exc)
188
196
  return False
189
- v3_data = {
190
- CONF_USERNAME: entry.data[CONF_USERNAME],
191
- CONF_PASSWORD: entry.data[CONF_PASSWORD],
192
- CONF_TOKEN: next(
193
- (
194
- thing.ble_auth_token
195
- for thing in things
196
- if thing.serial_number == entry.unique_id
197
- ),
198
- None,
199
- ),
200
- }
201
- if CONF_MAC in entry.data:
202
- v3_data[CONF_MAC] = entry.data[CONF_MAC]
197
+
203
198
  hass.config_entries.async_update_entry(
204
199
  entry,
205
- data=v3_data,
206
- version=3,
200
+ data={
201
+ **entry.data,
202
+ CONF_INSTALLATION_KEY: installation_key.to_json(),
203
+ },
204
+ version=4,
207
205
  )
208
- _LOGGER.debug("Migrated La Marzocco config entry to version 2")
206
+ _LOGGER.debug("Migrated La Marzocco config entry to version 4")
209
207
 
210
208
  return True
209
+
210
+
211
+ def create_client_session(hass: HomeAssistant) -> ClientSession:
212
+ """Create a ClientSession with La Marzocco specific headers."""
213
+
214
+ return async_create_clientsession(
215
+ hass,
216
+ headers={
217
+ "X-Client": "HOME_ASSISTANT",
218
+ "X-Client-Build": __version__,
219
+ },
220
+ )
@@ -5,11 +5,13 @@ from __future__ import annotations
5
5
  from collections.abc import Mapping
6
6
  import logging
7
7
  from typing import Any
8
+ import uuid
8
9
 
9
10
  from aiohttp import ClientSession
10
11
  from pylamarzocco import LaMarzoccoCloudClient
11
12
  from pylamarzocco.exceptions import AuthFail, RequestNotSuccessful
12
13
  from pylamarzocco.models import Thing
14
+ from pylamarzocco.util import InstallationKey, generate_installation_key
13
15
  import voluptuous as vol
14
16
 
15
17
  from homeassistant.components.bluetooth import (
@@ -33,7 +35,6 @@ from homeassistant.const import (
33
35
  )
34
36
  from homeassistant.core import callback
35
37
  from homeassistant.helpers import config_validation as cv
36
- from homeassistant.helpers.aiohttp_client import async_create_clientsession
37
38
  from homeassistant.helpers.selector import (
38
39
  SelectOptionDict,
39
40
  SelectSelector,
@@ -45,7 +46,8 @@ from homeassistant.helpers.selector import (
45
46
  )
46
47
  from homeassistant.helpers.service_info.dhcp import DhcpServiceInfo
47
48
 
48
- from .const import CONF_USE_BLUETOOTH, DOMAIN
49
+ from . import create_client_session
50
+ from .const import CONF_INSTALLATION_KEY, CONF_USE_BLUETOOTH, DOMAIN
49
51
  from .coordinator import LaMarzoccoConfigEntry
50
52
 
51
53
  CONF_MACHINE = "machine"
@@ -57,9 +59,10 @@ _LOGGER = logging.getLogger(__name__)
57
59
  class LmConfigFlow(ConfigFlow, domain=DOMAIN):
58
60
  """Handle a config flow for La Marzocco."""
59
61
 
60
- VERSION = 3
62
+ VERSION = 4
61
63
 
62
64
  _client: ClientSession
65
+ _installation_key: InstallationKey
63
66
 
64
67
  def __init__(self) -> None:
65
68
  """Initialize the config flow."""
@@ -83,13 +86,18 @@ class LmConfigFlow(ConfigFlow, domain=DOMAIN):
83
86
  **user_input,
84
87
  }
85
88
 
86
- self._client = async_create_clientsession(self.hass)
89
+ self._client = create_client_session(self.hass)
90
+ self._installation_key = generate_installation_key(
91
+ str(uuid.uuid4()).lower()
92
+ )
87
93
  cloud_client = LaMarzoccoCloudClient(
88
94
  username=data[CONF_USERNAME],
89
95
  password=data[CONF_PASSWORD],
90
96
  client=self._client,
97
+ installation_key=self._installation_key,
91
98
  )
92
99
  try:
100
+ await cloud_client.async_register_client()
93
101
  things = await cloud_client.list_things()
94
102
  except AuthFail:
95
103
  _LOGGER.debug("Server rejected login credentials")
@@ -184,6 +192,7 @@ class LmConfigFlow(ConfigFlow, domain=DOMAIN):
184
192
  title=selected_device.name,
185
193
  data={
186
194
  **self._config,
195
+ CONF_INSTALLATION_KEY: self._installation_key.to_json(),
187
196
  CONF_TOKEN: self._things[serial_number].ble_auth_token,
188
197
  },
189
198
  )
@@ -5,3 +5,4 @@ from typing import Final
5
5
  DOMAIN: Final = "lamarzocco"
6
6
 
7
7
  CONF_USE_BLUETOOTH: Final = "use_bluetooth"
8
+ CONF_INSTALLATION_KEY: Final = "installation_key"
@@ -37,5 +37,5 @@
37
37
  "iot_class": "cloud_push",
38
38
  "loggers": ["pylamarzocco"],
39
39
  "quality_scale": "platinum",
40
- "requirements": ["pylamarzocco==2.0.11"]
40
+ "requirements": ["pylamarzocco==2.1.0"]
41
41
  }
@@ -5,7 +5,7 @@
5
5
  "state": {
6
6
  "docked": "zadokowana",
7
7
  "mowing": "Koszenie",
8
- "paused": "wstrzymany"
8
+ "paused": "wstrzymano"
9
9
  }
10
10
  }
11
11
  },
@@ -3,7 +3,7 @@
3
3
  "select": {
4
4
  "load_balancing_mode": {
5
5
  "state": {
6
- "disabled": "wy\u0142\u0105czony"
6
+ "disabled": "wy\u0142\u0105czono"
7
7
  }
8
8
  }
9
9
  }
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "user": {
23
23
  "data": {
24
- "email": "E-mail",
24
+ "email": "Email",
25
25
  "password": "Palavra-passe"
26
26
  },
27
27
  "data_description": {
@@ -36,18 +36,18 @@
36
36
  "select": {
37
37
  "display_light": {
38
38
  "state": {
39
- "off": "wy\u0142\u0105czony"
39
+ "off": "wy\u0142\u0105czono"
40
40
  }
41
41
  },
42
42
  "fresh_air_filter": {
43
43
  "state": {
44
- "off": "wy\u0142\u0105czony",
45
- "smart_off": "wy\u0142\u0105czony"
44
+ "off": "wy\u0142\u0105czono",
45
+ "smart_off": "wy\u0142\u0105czono"
46
46
  }
47
47
  },
48
48
  "hygiene_dry_mode": {
49
49
  "state": {
50
- "off": "wy\u0142\u0105czony"
50
+ "off": "wy\u0142\u0105czono"
51
51
  }
52
52
  },
53
53
  "operation_mode": {
@@ -62,7 +62,7 @@
62
62
  },
63
63
  "wind_angle": {
64
64
  "state": {
65
- "off": "wy\u0142\u0105czony"
65
+ "off": "wy\u0142\u0105czono"
66
66
  }
67
67
  },
68
68
  "wind_strength": {
@@ -79,22 +79,22 @@
79
79
  },
80
80
  "current_job_mode": {
81
81
  "state": {
82
- "off": "wy\u0142\u0105czony"
82
+ "off": "wy\u0142\u0105czono"
83
83
  }
84
84
  },
85
85
  "current_job_mode_stick_cleaner": {
86
86
  "state": {
87
- "off": "wy\u0142\u0105czony"
87
+ "off": "wy\u0142\u0105czono"
88
88
  }
89
89
  },
90
90
  "current_state": {
91
91
  "state": {
92
92
  "initial": "tryb czuwania",
93
93
  "initializing": "tryb czuwania",
94
- "pause": "wstrzymany",
95
- "paused": "wstrzymany",
96
- "power_off": "wy\u0142\u0105czony",
97
- "power_on": "w\u0142\u0105czony",
94
+ "pause": "wstrzymano",
95
+ "paused": "wstrzymano",
96
+ "power_off": "wy\u0142\u0105czono",
97
+ "power_on": "w\u0142\u0105czono",
98
98
  "standby": "tryb czuwania"
99
99
  }
100
100
  },
@@ -102,17 +102,17 @@
102
102
  "state": {
103
103
  "initial": "tryb czuwania",
104
104
  "initializing": "tryb czuwania",
105
- "pause": "wstrzymany",
106
- "paused": "wstrzymany",
107
- "power_off": "wy\u0142\u0105czony",
108
- "power_on": "w\u0142\u0105czony",
105
+ "pause": "wstrzymano",
106
+ "paused": "wstrzymano",
107
+ "power_off": "wy\u0142\u0105czono",
108
+ "power_on": "w\u0142\u0105czono",
109
109
  "standby": "tryb czuwania"
110
110
  }
111
111
  },
112
112
  "fresh_air_filter": {
113
113
  "state": {
114
- "off": "wy\u0142\u0105czony",
115
- "smart_off": "wy\u0142\u0105czony"
114
+ "off": "wy\u0142\u0105czono",
115
+ "smart_off": "wy\u0142\u0105czono"
116
116
  }
117
117
  },
118
118
  "rinse_level": {
@@ -122,17 +122,17 @@
122
122
  },
123
123
  "sterilizing_state": {
124
124
  "state": {
125
- "off": "wy\u0142\u0105czony"
125
+ "off": "wy\u0142\u0105czono"
126
126
  }
127
127
  },
128
128
  "target_temperature": {
129
129
  "state": {
130
- "off": "wy\u0142\u0105czony"
130
+ "off": "wy\u0142\u0105czono"
131
131
  }
132
132
  },
133
133
  "target_temperature_for_location": {
134
134
  "state": {
135
- "off": "wy\u0142\u0105czony"
135
+ "off": "wy\u0142\u0105czono"
136
136
  }
137
137
  }
138
138
  }