homeassistant 2025.9.3__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.

Potentially problematic release.


This version of homeassistant might be problematic. Click here for more details.

Files changed (560) 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/uk.json +7 -0
  6. homeassistant/components/airos/translations/de.json +1 -1
  7. homeassistant/components/aladdin_connect/translations/it.json +1 -0
  8. homeassistant/components/alarmdecoder/translations/pt.json +1 -1
  9. homeassistant/components/anova/translations/pt.json +1 -1
  10. homeassistant/components/aosmith/translations/pt.json +1 -1
  11. homeassistant/components/aquacell/translations/pt.json +1 -1
  12. homeassistant/components/aseko_pool_live/translations/pt.json +2 -2
  13. homeassistant/components/assist_pipeline/translations/cs.json +1 -0
  14. homeassistant/components/assist_pipeline/translations/de.json +1 -1
  15. homeassistant/components/assist_pipeline/translations/fr.json +1 -0
  16. homeassistant/components/assist_pipeline/translations/it.json +1 -0
  17. homeassistant/components/assist_pipeline/translations/lt.json +1 -0
  18. homeassistant/components/assist_pipeline/translations/pt.json +2 -1
  19. homeassistant/components/assist_pipeline/translations/ru.json +1 -0
  20. homeassistant/components/assist_pipeline/translations/zh-Hans.json +1 -0
  21. homeassistant/components/assist_satellite/translations/pt.json +3 -3
  22. homeassistant/components/asuswrt/bridge.py +7 -0
  23. homeassistant/components/asuswrt/manifest.json +1 -1
  24. homeassistant/components/asuswrt/router.py +1 -1
  25. homeassistant/components/asuswrt/translations/de.json +1 -1
  26. homeassistant/components/aurora_abb_powerone/translations/uk.json +10 -0
  27. homeassistant/components/aussie_broadband/translations/uk.json +37 -0
  28. homeassistant/components/autarco/translations/pt.json +1 -1
  29. homeassistant/components/auth/login_flow.py +15 -4
  30. homeassistant/components/automation/translations/de.json +1 -1
  31. homeassistant/components/awair/translations/de.json +1 -1
  32. homeassistant/components/awair/translations/pt.json +2 -2
  33. homeassistant/components/awair/translations/uk.json +10 -0
  34. homeassistant/components/aws_s3/translations/pt.json +1 -1
  35. homeassistant/components/backup/translations/bg.json +0 -3
  36. homeassistant/components/backup/translations/cs.json +3 -3
  37. homeassistant/components/backup/translations/de.json +3 -3
  38. homeassistant/components/backup/translations/el.json +0 -3
  39. homeassistant/components/backup/translations/en-GB.json +3 -3
  40. homeassistant/components/backup/translations/en.json +3 -3
  41. homeassistant/components/backup/translations/es.json +3 -3
  42. homeassistant/components/backup/translations/et.json +2 -2
  43. homeassistant/components/backup/translations/fr.json +0 -3
  44. homeassistant/components/backup/translations/ga.json +0 -3
  45. homeassistant/components/backup/translations/he.json +0 -3
  46. homeassistant/components/backup/translations/hu.json +0 -3
  47. homeassistant/components/backup/translations/id.json +0 -3
  48. homeassistant/components/backup/translations/lt.json +1 -1
  49. homeassistant/components/backup/translations/nl.json +0 -3
  50. homeassistant/components/backup/translations/pl.json +0 -3
  51. homeassistant/components/backup/translations/pt.json +3 -3
  52. homeassistant/components/backup/translations/sv.json +0 -3
  53. homeassistant/components/backup/translations/tr.json +0 -3
  54. homeassistant/components/backup/translations/zh-Hans.json +3 -3
  55. homeassistant/components/backup/translations/zh-Hant.json +3 -3
  56. homeassistant/components/bang_olufsen/translations/pt.json +1 -1
  57. homeassistant/components/bayesian/translations/es.json +1 -1
  58. homeassistant/components/bayesian/translations/pt.json +1 -1
  59. homeassistant/components/bayesian/translations/sv.json +1 -0
  60. homeassistant/components/binary_sensor/translations/es.json +1 -1
  61. homeassistant/components/binary_sensor/translations/mk.json +5 -0
  62. homeassistant/components/binary_sensor/translations/sv.json +1 -1
  63. homeassistant/components/bluetooth/manifest.json +1 -1
  64. homeassistant/components/bmw_connected_drive/translations/uk.json +66 -0
  65. homeassistant/components/bosch_alarm/translations/pt.json +1 -1
  66. homeassistant/components/bring/translations/pt.json +3 -3
  67. homeassistant/components/climate/translations/mk.json +13 -0
  68. homeassistant/components/climate/translations/uk.json +5 -1
  69. homeassistant/components/cookidoo/translations/pt.json +2 -2
  70. homeassistant/components/cover/translations/pl.json +1 -0
  71. homeassistant/components/crownstone/translations/pt.json +1 -1
  72. homeassistant/components/datadog/translations/es.json +1 -1
  73. homeassistant/components/datadog/translations/pt.json +1 -1
  74. homeassistant/components/device_tracker/translations/mk.json +9 -0
  75. homeassistant/components/devolo_home_network/translations/de.json +1 -1
  76. homeassistant/components/discovergy/translations/pt.json +1 -1
  77. homeassistant/components/dlna_dmr/translations/de.json +1 -1
  78. homeassistant/components/doorbird/translations/pt.json +3 -1
  79. homeassistant/components/drop_connect/translations/mk.json +11 -0
  80. homeassistant/components/econet/translations/pt.json +1 -1
  81. homeassistant/components/edl21/translations/uk.json +10 -0
  82. homeassistant/components/efergy/translations/uk.json +25 -0
  83. homeassistant/components/elkm1/translations/bg.json +0 -3
  84. homeassistant/components/elkm1/translations/ca.json +0 -4
  85. homeassistant/components/elkm1/translations/cs.json +11 -11
  86. homeassistant/components/elkm1/translations/de.json +15 -15
  87. homeassistant/components/elkm1/translations/el.json +0 -9
  88. homeassistant/components/elkm1/translations/en-GB.json +11 -11
  89. homeassistant/components/elkm1/translations/en.json +11 -11
  90. homeassistant/components/elkm1/translations/es-419.json +0 -4
  91. homeassistant/components/elkm1/translations/es.json +9 -9
  92. homeassistant/components/elkm1/translations/et.json +10 -10
  93. homeassistant/components/elkm1/translations/fi.json +0 -9
  94. homeassistant/components/elkm1/translations/fr.json +0 -4
  95. homeassistant/components/elkm1/translations/ga.json +0 -10
  96. homeassistant/components/elkm1/translations/he.json +0 -1
  97. homeassistant/components/elkm1/translations/hu.json +0 -10
  98. homeassistant/components/elkm1/translations/id.json +0 -4
  99. homeassistant/components/elkm1/translations/it.json +0 -9
  100. homeassistant/components/elkm1/translations/ja.json +0 -10
  101. homeassistant/components/elkm1/translations/ko.json +0 -9
  102. homeassistant/components/elkm1/translations/lb.json +0 -4
  103. homeassistant/components/elkm1/translations/lt.json +11 -11
  104. homeassistant/components/elkm1/translations/nb.json +0 -4
  105. homeassistant/components/elkm1/translations/nl.json +0 -4
  106. homeassistant/components/elkm1/translations/pl.json +0 -4
  107. homeassistant/components/elkm1/translations/pt-BR.json +0 -4
  108. homeassistant/components/elkm1/translations/pt.json +11 -11
  109. homeassistant/components/elkm1/translations/ro.json +0 -4
  110. homeassistant/components/elkm1/translations/ru.json +0 -10
  111. homeassistant/components/elkm1/translations/sk.json +11 -11
  112. homeassistant/components/elkm1/translations/sl.json +0 -2
  113. homeassistant/components/elkm1/translations/sv.json +0 -10
  114. homeassistant/components/elkm1/translations/tr.json +0 -10
  115. homeassistant/components/elkm1/translations/uk.json +0 -4
  116. homeassistant/components/elkm1/translations/vi.json +0 -7
  117. homeassistant/components/elkm1/translations/zh-Hans.json +3 -3
  118. homeassistant/components/elkm1/translations/zh-Hant.json +11 -11
  119. homeassistant/components/emoncms/manifest.json +1 -1
  120. homeassistant/components/emoncms_history/manifest.json +1 -1
  121. homeassistant/components/energy/translations/sv.json +4 -4
  122. homeassistant/components/environment_canada/translations/uk.json +7 -0
  123. homeassistant/components/esphome/translations/ca.json +1 -2
  124. homeassistant/components/esphome/translations/cs.json +3 -2
  125. homeassistant/components/esphome/translations/da.json +1 -2
  126. homeassistant/components/esphome/translations/de.json +4 -4
  127. homeassistant/components/esphome/translations/el.json +1 -10
  128. homeassistant/components/esphome/translations/en-GB.json +5 -5
  129. homeassistant/components/esphome/translations/en.json +5 -5
  130. homeassistant/components/esphome/translations/es.json +4 -4
  131. homeassistant/components/esphome/translations/et.json +4 -4
  132. homeassistant/components/esphome/translations/fi.json +1 -2
  133. homeassistant/components/esphome/translations/fr.json +2 -11
  134. homeassistant/components/esphome/translations/ga.json +1 -7
  135. homeassistant/components/esphome/translations/he.json +1 -10
  136. homeassistant/components/esphome/translations/hu.json +1 -10
  137. homeassistant/components/esphome/translations/id.json +1 -2
  138. homeassistant/components/esphome/translations/it.json +2 -3
  139. homeassistant/components/esphome/translations/ja.json +1 -3
  140. homeassistant/components/esphome/translations/ko.json +1 -2
  141. homeassistant/components/esphome/translations/lt.json +6 -5
  142. homeassistant/components/esphome/translations/lv.json +1 -2
  143. homeassistant/components/esphome/translations/mk.json +0 -1
  144. homeassistant/components/esphome/translations/nb.json +1 -2
  145. homeassistant/components/esphome/translations/nl.json +1 -3
  146. homeassistant/components/esphome/translations/pl.json +1 -2
  147. homeassistant/components/esphome/translations/pt-BR.json +1 -2
  148. homeassistant/components/esphome/translations/pt.json +7 -6
  149. homeassistant/components/esphome/translations/ro.json +1 -2
  150. homeassistant/components/esphome/translations/ru.json +5 -4
  151. homeassistant/components/esphome/translations/sk.json +3 -3
  152. homeassistant/components/esphome/translations/sl.json +1 -10
  153. homeassistant/components/esphome/translations/sv.json +1 -10
  154. homeassistant/components/esphome/translations/tr.json +1 -3
  155. homeassistant/components/esphome/translations/uk.json +3 -3
  156. homeassistant/components/esphome/translations/vi.json +1 -3
  157. homeassistant/components/esphome/translations/zh-Hans.json +6 -5
  158. homeassistant/components/esphome/translations/zh-Hant.json +4 -4
  159. homeassistant/components/eufylife_ble/translations/uk.json +13 -0
  160. homeassistant/components/fan/translations/ca.json +3 -0
  161. homeassistant/components/feedreader/translations/es.json +1 -1
  162. homeassistant/components/fibaro/translations/pt.json +1 -1
  163. homeassistant/components/fivem/translations/uk.json +7 -0
  164. homeassistant/components/fjaraskupan/translations/uk.json +15 -0
  165. homeassistant/components/flipr/translations/pt.json +1 -1
  166. homeassistant/components/flipr/translations/uk.json +21 -0
  167. homeassistant/components/flux_led/translations/uk.json +12 -0
  168. homeassistant/components/freebox/translations/de.json +1 -1
  169. homeassistant/components/fronius/translations/mk.json +1 -0
  170. homeassistant/components/fronius/translations/pt.json +4 -4
  171. homeassistant/components/fronius/translations/vi.json +9 -0
  172. homeassistant/components/fully_kiosk/translations/uk.json +17 -0
  173. homeassistant/components/fyta/translations/pt.json +1 -1
  174. homeassistant/components/gardena_bluetooth/translations/de.json +1 -1
  175. homeassistant/components/generic_thermostat/translations/mk.json +20 -0
  176. homeassistant/components/github/translations/pt.json +1 -1
  177. homeassistant/components/google_cloud/translations/pt.json +1 -0
  178. homeassistant/components/google_cloud/translations/uk.json +32 -0
  179. homeassistant/components/google_photos/translations/uk.json +51 -0
  180. homeassistant/components/group/translations/mk.json +1 -0
  181. homeassistant/components/guardian/translations/de.json +1 -1
  182. homeassistant/components/habitica/manifest.json +1 -1
  183. homeassistant/components/hassio/translations/ca.json +0 -2
  184. homeassistant/components/hassio/translations/cs.json +3 -3
  185. homeassistant/components/hassio/translations/de.json +11 -11
  186. homeassistant/components/hassio/translations/el.json +0 -8
  187. homeassistant/components/hassio/translations/en-GB.json +4 -4
  188. homeassistant/components/hassio/translations/en.json +4 -4
  189. homeassistant/components/hassio/translations/es.json +4 -4
  190. homeassistant/components/hassio/translations/et.json +4 -4
  191. homeassistant/components/hassio/translations/fi.json +0 -2
  192. homeassistant/components/hassio/translations/fr.json +0 -8
  193. homeassistant/components/hassio/translations/ga.json +0 -8
  194. homeassistant/components/hassio/translations/he.json +0 -8
  195. homeassistant/components/hassio/translations/hu.json +0 -8
  196. homeassistant/components/hassio/translations/id.json +0 -8
  197. homeassistant/components/hassio/translations/it.json +0 -2
  198. homeassistant/components/hassio/translations/ja.json +0 -8
  199. homeassistant/components/hassio/translations/ko.json +0 -7
  200. homeassistant/components/hassio/translations/lt.json +4 -4
  201. homeassistant/components/hassio/translations/nb.json +0 -2
  202. homeassistant/components/hassio/translations/nl.json +0 -8
  203. homeassistant/components/hassio/translations/pl.json +0 -2
  204. homeassistant/components/hassio/translations/pt-BR.json +0 -2
  205. homeassistant/components/hassio/translations/pt.json +4 -4
  206. homeassistant/components/hassio/translations/ro.json +0 -2
  207. homeassistant/components/hassio/translations/ru.json +2 -4
  208. homeassistant/components/hassio/translations/sk.json +3 -3
  209. homeassistant/components/hassio/translations/sl.json +0 -8
  210. homeassistant/components/hassio/translations/sv.json +0 -8
  211. homeassistant/components/hassio/translations/tr.json +0 -8
  212. homeassistant/components/hassio/translations/uk.json +0 -2
  213. homeassistant/components/hassio/translations/vi.json +0 -8
  214. homeassistant/components/hassio/translations/zh-Hans.json +4 -4
  215. homeassistant/components/hassio/translations/zh-Hant.json +4 -4
  216. homeassistant/components/holiday/manifest.json +1 -1
  217. homeassistant/components/home_connect/translations/pt.json +3 -3
  218. homeassistant/components/homeassistant/translations/uk.json +4 -0
  219. homeassistant/components/homeassistant_hardware/translations/bg.json +0 -12
  220. homeassistant/components/homeassistant_hardware/translations/ca.json +0 -7
  221. homeassistant/components/homeassistant_hardware/translations/cs.json +4 -4
  222. homeassistant/components/homeassistant_hardware/translations/de.json +4 -4
  223. homeassistant/components/homeassistant_hardware/translations/el.json +0 -8
  224. homeassistant/components/homeassistant_hardware/translations/en-GB.json +4 -4
  225. homeassistant/components/homeassistant_hardware/translations/en.json +4 -4
  226. homeassistant/components/homeassistant_hardware/translations/es.json +4 -4
  227. homeassistant/components/homeassistant_hardware/translations/et.json +4 -4
  228. homeassistant/components/homeassistant_hardware/translations/fr.json +0 -8
  229. homeassistant/components/homeassistant_hardware/translations/ga.json +0 -8
  230. homeassistant/components/homeassistant_hardware/translations/he.json +0 -8
  231. homeassistant/components/homeassistant_hardware/translations/hu.json +0 -8
  232. homeassistant/components/homeassistant_hardware/translations/id.json +0 -8
  233. homeassistant/components/homeassistant_hardware/translations/it.json +0 -9
  234. homeassistant/components/homeassistant_hardware/translations/ja.json +0 -8
  235. homeassistant/components/homeassistant_hardware/translations/ko.json +0 -8
  236. homeassistant/components/homeassistant_hardware/translations/lt.json +4 -4
  237. homeassistant/components/homeassistant_hardware/translations/mk.json +10 -0
  238. homeassistant/components/homeassistant_hardware/translations/nl.json +0 -7
  239. homeassistant/components/homeassistant_hardware/translations/pl.json +0 -12
  240. homeassistant/components/homeassistant_hardware/translations/pt.json +5 -5
  241. homeassistant/components/homeassistant_hardware/translations/ru.json +0 -8
  242. homeassistant/components/homeassistant_hardware/translations/sk.json +4 -4
  243. homeassistant/components/homeassistant_hardware/translations/sv.json +0 -8
  244. homeassistant/components/homeassistant_hardware/translations/tr.json +0 -8
  245. homeassistant/components/homeassistant_hardware/translations/zh-Hans.json +4 -4
  246. homeassistant/components/homeassistant_hardware/translations/zh-Hant.json +4 -4
  247. homeassistant/components/homeassistant_sky_connect/translations/cs.json +8 -8
  248. homeassistant/components/homeassistant_sky_connect/translations/de.json +8 -8
  249. homeassistant/components/homeassistant_sky_connect/translations/en-GB.json +8 -8
  250. homeassistant/components/homeassistant_sky_connect/translations/en.json +8 -8
  251. homeassistant/components/homeassistant_sky_connect/translations/es.json +8 -8
  252. homeassistant/components/homeassistant_sky_connect/translations/et.json +8 -8
  253. homeassistant/components/homeassistant_sky_connect/translations/lt.json +8 -8
  254. homeassistant/components/homeassistant_sky_connect/translations/pt.json +10 -10
  255. homeassistant/components/homeassistant_sky_connect/translations/sk.json +8 -8
  256. homeassistant/components/homeassistant_sky_connect/translations/zh-Hans.json +8 -8
  257. homeassistant/components/homeassistant_sky_connect/translations/zh-Hant.json +8 -8
  258. homeassistant/components/homeassistant_yellow/translations/cs.json +4 -4
  259. homeassistant/components/homeassistant_yellow/translations/de.json +4 -4
  260. homeassistant/components/homeassistant_yellow/translations/en-GB.json +4 -4
  261. homeassistant/components/homeassistant_yellow/translations/en.json +4 -4
  262. homeassistant/components/homeassistant_yellow/translations/es.json +4 -4
  263. homeassistant/components/homeassistant_yellow/translations/et.json +4 -4
  264. homeassistant/components/homeassistant_yellow/translations/fa.json +1 -0
  265. homeassistant/components/homeassistant_yellow/translations/lt.json +4 -4
  266. homeassistant/components/homeassistant_yellow/translations/mk.json +1 -0
  267. homeassistant/components/homeassistant_yellow/translations/pt.json +5 -5
  268. homeassistant/components/homeassistant_yellow/translations/sk.json +4 -4
  269. homeassistant/components/homeassistant_yellow/translations/zh-Hans.json +4 -4
  270. homeassistant/components/homeassistant_yellow/translations/zh-Hant.json +4 -4
  271. homeassistant/components/homee/translations/pt.json +1 -1
  272. homeassistant/components/homekit_controller/connection.py +34 -21
  273. homeassistant/components/homekit_controller/manifest.json +1 -1
  274. homeassistant/components/homekit_controller/translations/mk.json +11 -0
  275. homeassistant/components/honeywell/translations/cs.json +0 -3
  276. homeassistant/components/honeywell/translations/de.json +1 -1
  277. homeassistant/components/honeywell/translations/el.json +0 -3
  278. homeassistant/components/honeywell/translations/en-GB.json +1 -1
  279. homeassistant/components/honeywell/translations/en.json +1 -1
  280. homeassistant/components/honeywell/translations/es.json +0 -3
  281. homeassistant/components/honeywell/translations/et.json +0 -3
  282. homeassistant/components/honeywell/translations/fi.json +0 -3
  283. homeassistant/components/honeywell/translations/ga.json +0 -3
  284. homeassistant/components/honeywell/translations/gl.json +0 -3
  285. homeassistant/components/honeywell/translations/hu.json +0 -3
  286. homeassistant/components/honeywell/translations/ja.json +0 -3
  287. homeassistant/components/honeywell/translations/lt.json +0 -3
  288. homeassistant/components/honeywell/translations/pt.json +0 -3
  289. homeassistant/components/honeywell/translations/ru.json +0 -3
  290. homeassistant/components/honeywell/translations/sk.json +0 -3
  291. homeassistant/components/honeywell/translations/sv.json +0 -3
  292. homeassistant/components/honeywell/translations/tr.json +0 -3
  293. homeassistant/components/honeywell/translations/zh-Hans.json +0 -3
  294. homeassistant/components/honeywell/translations/zh-Hant.json +0 -3
  295. homeassistant/components/html5/translations/pt.json +1 -1
  296. homeassistant/components/html5/translations/uk.json +29 -0
  297. homeassistant/components/humidifier/translations/mk.json +13 -0
  298. homeassistant/components/icloud/translations/ca.json +1 -5
  299. homeassistant/components/icloud/translations/cs.json +10 -10
  300. homeassistant/components/icloud/translations/da.json +1 -4
  301. homeassistant/components/icloud/translations/de.json +9 -9
  302. homeassistant/components/icloud/translations/el.json +1 -7
  303. homeassistant/components/icloud/translations/en-GB.json +10 -10
  304. homeassistant/components/icloud/translations/en.json +10 -10
  305. homeassistant/components/icloud/translations/es-419.json +1 -6
  306. homeassistant/components/icloud/translations/es.json +10 -10
  307. homeassistant/components/icloud/translations/et.json +10 -10
  308. homeassistant/components/icloud/translations/fi.json +1 -5
  309. homeassistant/components/icloud/translations/fr.json +1 -10
  310. homeassistant/components/icloud/translations/ga.json +1 -10
  311. homeassistant/components/icloud/translations/he.json +1 -7
  312. homeassistant/components/icloud/translations/hu.json +1 -10
  313. homeassistant/components/icloud/translations/id.json +1 -9
  314. homeassistant/components/icloud/translations/it.json +1 -9
  315. homeassistant/components/icloud/translations/ja.json +1 -9
  316. homeassistant/components/icloud/translations/ko.json +1 -5
  317. homeassistant/components/icloud/translations/lb.json +1 -4
  318. homeassistant/components/icloud/translations/lt.json +10 -10
  319. homeassistant/components/icloud/translations/mk.json +14 -0
  320. homeassistant/components/icloud/translations/nb.json +1 -4
  321. homeassistant/components/icloud/translations/nl.json +1 -9
  322. homeassistant/components/icloud/translations/pl.json +1 -4
  323. homeassistant/components/icloud/translations/pt-BR.json +1 -5
  324. homeassistant/components/icloud/translations/pt.json +5 -9
  325. homeassistant/components/icloud/translations/ro.json +1 -4
  326. homeassistant/components/icloud/translations/ru.json +2 -8
  327. homeassistant/components/icloud/translations/sk.json +10 -10
  328. homeassistant/components/icloud/translations/sl.json +1 -5
  329. homeassistant/components/icloud/translations/sv.json +1 -10
  330. homeassistant/components/icloud/translations/tr.json +1 -10
  331. homeassistant/components/icloud/translations/uk.json +1 -5
  332. homeassistant/components/icloud/translations/vi.json +2 -6
  333. homeassistant/components/icloud/translations/zh-Hans.json +9 -9
  334. homeassistant/components/icloud/translations/zh-Hant.json +10 -10
  335. homeassistant/components/imeon_inverter/manifest.json +1 -1
  336. homeassistant/components/improv_ble/translations/ca.json +0 -1
  337. homeassistant/components/improv_ble/translations/cs.json +1 -1
  338. homeassistant/components/improv_ble/translations/de.json +5 -5
  339. homeassistant/components/improv_ble/translations/el.json +0 -1
  340. homeassistant/components/improv_ble/translations/en-GB.json +1 -1
  341. homeassistant/components/improv_ble/translations/en.json +1 -1
  342. homeassistant/components/improv_ble/translations/es.json +1 -1
  343. homeassistant/components/improv_ble/translations/et.json +1 -1
  344. homeassistant/components/improv_ble/translations/fi.json +0 -1
  345. homeassistant/components/improv_ble/translations/fr.json +0 -1
  346. homeassistant/components/improv_ble/translations/ga.json +0 -1
  347. homeassistant/components/improv_ble/translations/gl.json +1 -2
  348. homeassistant/components/improv_ble/translations/he.json +0 -1
  349. homeassistant/components/improv_ble/translations/hu.json +0 -1
  350. homeassistant/components/improv_ble/translations/id.json +0 -1
  351. homeassistant/components/improv_ble/translations/it.json +0 -1
  352. homeassistant/components/improv_ble/translations/ja.json +0 -1
  353. homeassistant/components/improv_ble/translations/ko.json +0 -1
  354. homeassistant/components/improv_ble/translations/lt.json +1 -1
  355. homeassistant/components/improv_ble/translations/pt.json +1 -1
  356. homeassistant/components/improv_ble/translations/ru.json +0 -1
  357. homeassistant/components/improv_ble/translations/sk.json +1 -1
  358. homeassistant/components/improv_ble/translations/sv.json +0 -1
  359. homeassistant/components/improv_ble/translations/tr.json +0 -1
  360. homeassistant/components/improv_ble/translations/zh-Hans.json +1 -1
  361. homeassistant/components/improv_ble/translations/zh-Hant.json +1 -1
  362. homeassistant/components/insteon/translations/de.json +1 -1
  363. homeassistant/components/intellifire/translations/pt.json +1 -1
  364. homeassistant/components/ipma/translations/uk.json +3 -0
  365. homeassistant/components/ista_ecotrend/translations/pt.json +3 -3
  366. homeassistant/components/jewish_calendar/translations/pt.json +1 -1
  367. homeassistant/components/kitchen_sink/translations/de.json +2 -2
  368. homeassistant/components/knx/storage/entity_store_schema.py +13 -9
  369. homeassistant/components/knx/translations/pt.json +1 -1
  370. homeassistant/components/lamarzocco/__init__.py +34 -24
  371. homeassistant/components/lamarzocco/config_flow.py +13 -4
  372. homeassistant/components/lamarzocco/const.py +1 -0
  373. homeassistant/components/lamarzocco/manifest.json +1 -1
  374. homeassistant/components/letpot/translations/pt.json +1 -1
  375. homeassistant/components/lg_thinq/translations/pt.json +10 -10
  376. homeassistant/components/lg_thinq/translations/uk.json +38 -0
  377. homeassistant/components/lidarr/translations/pt.json +1 -1
  378. homeassistant/components/light/translations/ca.json +2 -1
  379. homeassistant/components/light/translations/uk.json +19 -0
  380. homeassistant/components/litterrobot/translations/uk.json +21 -0
  381. homeassistant/components/matter/translations/ca.json +3 -0
  382. homeassistant/components/matter/translations/pt.json +6 -0
  383. homeassistant/components/matter/translations/ru.json +6 -0
  384. homeassistant/components/melcloud/translations/pt.json +2 -2
  385. homeassistant/components/metoffice/translations/pt.json +1 -1
  386. homeassistant/components/miele/coordinator.py +18 -2
  387. homeassistant/components/miele/translations/pt.json +2 -2
  388. homeassistant/components/miele/translations/sv.json +3 -3
  389. homeassistant/components/monarch_money/translations/pt.json +2 -2
  390. homeassistant/components/motionmount/translations/lt.json +4 -1
  391. homeassistant/components/motionmount/translations/pt.json +4 -1
  392. homeassistant/components/mqtt/translations/cs.json +1 -1
  393. homeassistant/components/mqtt/translations/de.json +3 -3
  394. homeassistant/components/mqtt/translations/en-GB.json +1 -1
  395. homeassistant/components/mqtt/translations/en.json +1 -1
  396. homeassistant/components/mqtt/translations/es.json +2 -2
  397. homeassistant/components/mqtt/translations/et.json +1 -1
  398. homeassistant/components/mqtt/translations/ga.json +0 -1
  399. homeassistant/components/mqtt/translations/he.json +0 -1
  400. homeassistant/components/mqtt/translations/hu.json +0 -1
  401. homeassistant/components/mqtt/translations/it.json +0 -1
  402. homeassistant/components/mqtt/translations/lt.json +3 -2
  403. homeassistant/components/mqtt/translations/nl.json +0 -1
  404. homeassistant/components/mqtt/translations/pt.json +3 -3
  405. homeassistant/components/mqtt/translations/ru.json +5 -0
  406. homeassistant/components/mqtt/translations/sk.json +1 -1
  407. homeassistant/components/mqtt/translations/sv.json +1 -1
  408. homeassistant/components/mqtt/translations/zh-Hans.json +1 -1
  409. homeassistant/components/mqtt/translations/zh-Hant.json +1 -1
  410. homeassistant/components/music_assistant/translations/pt.json +1 -1
  411. homeassistant/components/nanoleaf/translations/de.json +1 -1
  412. homeassistant/components/netgear/translations/de.json +1 -1
  413. homeassistant/components/nice_go/translations/pt.json +2 -2
  414. homeassistant/components/notion/translations/uk.json +13 -0
  415. homeassistant/components/ntfy/translations/ru.json +82 -0
  416. homeassistant/components/nut/translations/pt.json +1 -1
  417. homeassistant/components/ohme/translations/pt.json +1 -1
  418. homeassistant/components/onedrive/translations/pt.json +1 -1
  419. homeassistant/components/onewire/translations/vi.json +5 -0
  420. homeassistant/components/onvif/translations/de.json +1 -1
  421. homeassistant/components/onvif/translations/pt.json +3 -1
  422. homeassistant/components/onvif/translations/ru.json +3 -1
  423. homeassistant/components/openai_conversation/translations/pt.json +1 -1
  424. homeassistant/components/opentherm_gw/translations/mk.json +9 -0
  425. homeassistant/components/opower/manifest.json +1 -1
  426. homeassistant/components/person/translations/mk.json +9 -0
  427. homeassistant/components/plugwise/translations/mk.json +11 -0
  428. homeassistant/components/plugwise/translations/uk.json +6 -0
  429. homeassistant/components/plum_lightpad/translations/pt.json +1 -1
  430. homeassistant/components/poolsense/translations/pt.json +1 -1
  431. homeassistant/components/powerfox/translations/pt.json +2 -2
  432. homeassistant/components/powerwall/translations/uk.json +6 -0
  433. homeassistant/components/qnap/translations/uk.json +19 -0
  434. homeassistant/components/random/translations/es.json +1 -1
  435. homeassistant/components/random/translations/sv.json +1 -1
  436. homeassistant/components/recorder/translations/vi.json +5 -0
  437. homeassistant/components/rehlko/translations/pt.json +1 -1
  438. homeassistant/components/remote/translations/ca.json +3 -0
  439. homeassistant/components/renault/translations/pt.json +1 -1
  440. homeassistant/components/reolink/translations/mk.json +5 -0
  441. homeassistant/components/reolink/translations/pt.json +3 -0
  442. homeassistant/components/rituals_perfume_genie/translations/pt.json +1 -1
  443. homeassistant/components/roborock/translations/de.json +2 -2
  444. homeassistant/components/roborock/translations/pt.json +1 -1
  445. homeassistant/components/ruckus_unleashed/translations/de.json +1 -1
  446. homeassistant/components/rympro/translations/pt.json +1 -1
  447. homeassistant/components/script/translations/de.json +1 -1
  448. homeassistant/components/sense/translations/pt.json +1 -1
  449. homeassistant/components/sensorpush_cloud/translations/pt.json +1 -1
  450. homeassistant/components/sensoterra/translations/pt.json +2 -2
  451. homeassistant/components/shelly/translations/pt.json +1 -1
  452. homeassistant/components/simplisafe/translations/uk.json +7 -0
  453. homeassistant/components/skybell/translations/pt.json +1 -1
  454. homeassistant/components/smarla/translations/pt.json +1 -1
  455. homeassistant/components/smartthings/translations/fr.json +28 -0
  456. homeassistant/components/smartthings/translations/pt.json +1 -1
  457. homeassistant/components/smarttub/translations/pt.json +1 -1
  458. homeassistant/components/snooz/translations/es.json +1 -1
  459. homeassistant/components/sonos/media_player.py +1 -1
  460. homeassistant/components/sql/translations/pt.json +4 -0
  461. homeassistant/components/sql/translations/uk.json +1 -0
  462. homeassistant/components/stookwijzer/translations/es.json +1 -1
  463. homeassistant/components/switch/translations/ca.json +3 -0
  464. homeassistant/components/tado/translations/it.json +6 -0
  465. homeassistant/components/technove/translations/de.json +1 -1
  466. homeassistant/components/tedee/translations/de.json +2 -2
  467. homeassistant/components/telegram_bot/translations/pt.json +2 -2
  468. homeassistant/components/template/translations/ca.json +17 -0
  469. homeassistant/components/template/translations/es.json +1 -1
  470. homeassistant/components/template/translations/lt.json +14 -2
  471. homeassistant/components/template/translations/pt.json +2 -2
  472. homeassistant/components/template/translations/sv.json +1 -1
  473. homeassistant/components/teslemetry/translations/de.json +1 -1
  474. homeassistant/components/teslemetry/translations/ko.json +5 -0
  475. homeassistant/components/teslemetry/translations/pt.json +2 -2
  476. homeassistant/components/tile/translations/pt.json +1 -1
  477. homeassistant/components/tod/translations/sv.json +2 -2
  478. homeassistant/components/tomorrowio/translations/vi.json +1 -0
  479. homeassistant/components/totalconnect/translations/pt.json +1 -1
  480. homeassistant/components/tractive/translations/de.json +1 -1
  481. homeassistant/components/tractive/translations/pt.json +1 -1
  482. homeassistant/components/trafikverket_ferry/translations/uk.json +22 -0
  483. homeassistant/components/trafikverket_train/translations/pt.json +1 -1
  484. homeassistant/components/trafikverket_weatherstation/translations/uk.json +13 -0
  485. homeassistant/components/tuya/translations/pt.json +9 -0
  486. homeassistant/components/tuya/translations/ru.json +9 -0
  487. homeassistant/components/tuya/translations/uk.json +11 -0
  488. homeassistant/components/update/translations/ca.json +3 -0
  489. homeassistant/components/vallox/translations/mk.json +9 -0
  490. homeassistant/components/valve/translations/pl.json +1 -0
  491. homeassistant/components/velbus/translations/de.json +1 -1
  492. homeassistant/components/verisure/translations/pt.json +2 -2
  493. homeassistant/components/vesync/translations/pt.json +2 -2
  494. homeassistant/components/vicare/translations/pt.json +1 -1
  495. homeassistant/components/voip/translations/cs.json +1 -1
  496. homeassistant/components/voip/translations/de.json +1 -1
  497. homeassistant/components/voip/translations/fr.json +1 -1
  498. homeassistant/components/voip/translations/it.json +1 -1
  499. homeassistant/components/voip/translations/lt.json +1 -1
  500. homeassistant/components/voip/translations/pt.json +2 -2
  501. homeassistant/components/voip/translations/ru.json +1 -1
  502. homeassistant/components/voip/translations/zh-Hans.json +1 -1
  503. homeassistant/components/waterfurnace/manifest.json +1 -1
  504. homeassistant/components/watergate/translations/de.json +2 -2
  505. homeassistant/components/weatherflow/translations/es.json +1 -1
  506. homeassistant/components/webostv/translations/de.json +2 -2
  507. homeassistant/components/workday/manifest.json +1 -1
  508. homeassistant/components/wyoming/translations/cs.json +1 -1
  509. homeassistant/components/wyoming/translations/de.json +1 -1
  510. homeassistant/components/wyoming/translations/fr.json +1 -1
  511. homeassistant/components/wyoming/translations/it.json +1 -1
  512. homeassistant/components/wyoming/translations/lt.json +1 -1
  513. homeassistant/components/wyoming/translations/pt.json +1 -1
  514. homeassistant/components/wyoming/translations/ru.json +1 -1
  515. homeassistant/components/wyoming/translations/zh-Hans.json +1 -1
  516. homeassistant/components/yale_smart_alarm/translations/pt.json +1 -1
  517. homeassistant/components/zha/translations/pl.json +3 -0
  518. homeassistant/components/zha/translations/uk.json +15 -0
  519. homeassistant/components/zimi/translations/pt.json +1 -1
  520. homeassistant/components/zone/translations/uk.json +1 -0
  521. homeassistant/components/zwave_js/translations/ca.json +0 -1
  522. homeassistant/components/zwave_js/translations/cs.json +1 -1
  523. homeassistant/components/zwave_js/translations/de.json +1 -1
  524. homeassistant/components/zwave_js/translations/el.json +0 -1
  525. homeassistant/components/zwave_js/translations/en-GB.json +1 -1
  526. homeassistant/components/zwave_js/translations/en.json +1 -1
  527. homeassistant/components/zwave_js/translations/es.json +1 -1
  528. homeassistant/components/zwave_js/translations/et.json +1 -1
  529. homeassistant/components/zwave_js/translations/fi.json +0 -1
  530. homeassistant/components/zwave_js/translations/fr.json +0 -1
  531. homeassistant/components/zwave_js/translations/ga.json +0 -1
  532. homeassistant/components/zwave_js/translations/hu.json +0 -1
  533. homeassistant/components/zwave_js/translations/id.json +0 -1
  534. homeassistant/components/zwave_js/translations/it.json +0 -1
  535. homeassistant/components/zwave_js/translations/ja.json +0 -1
  536. homeassistant/components/zwave_js/translations/ko.json +0 -1
  537. homeassistant/components/zwave_js/translations/lt.json +1 -1
  538. homeassistant/components/zwave_js/translations/nb.json +0 -1
  539. homeassistant/components/zwave_js/translations/nl.json +0 -1
  540. homeassistant/components/zwave_js/translations/pl.json +0 -1
  541. homeassistant/components/zwave_js/translations/pt-BR.json +0 -1
  542. homeassistant/components/zwave_js/translations/pt.json +1 -1
  543. homeassistant/components/zwave_js/translations/ro.json +0 -1
  544. homeassistant/components/zwave_js/translations/ru.json +0 -1
  545. homeassistant/components/zwave_js/translations/sk.json +1 -1
  546. homeassistant/components/zwave_js/translations/sv.json +0 -1
  547. homeassistant/components/zwave_js/translations/tr.json +0 -1
  548. homeassistant/components/zwave_js/translations/uk.json +20 -1
  549. homeassistant/components/zwave_js/translations/vi.json +0 -1
  550. homeassistant/components/zwave_js/translations/zh-Hans.json +1 -1
  551. homeassistant/components/zwave_js/translations/zh-Hant.json +1 -1
  552. homeassistant/const.py +1 -1
  553. homeassistant/package_constraints.txt +1 -1
  554. {homeassistant-2025.9.3.dist-info → homeassistant-2025.9.4.dist-info}/METADATA +1 -1
  555. {homeassistant-2025.9.3.dist-info → homeassistant-2025.9.4.dist-info}/RECORD +560 -542
  556. {homeassistant-2025.9.3.dist-info → homeassistant-2025.9.4.dist-info}/WHEEL +0 -0
  557. {homeassistant-2025.9.3.dist-info → homeassistant-2025.9.4.dist-info}/entry_points.txt +0 -0
  558. {homeassistant-2025.9.3.dist-info → homeassistant-2025.9.4.dist-info}/licenses/LICENSE.md +0 -0
  559. {homeassistant-2025.9.3.dist-info → homeassistant-2025.9.4.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  560. {homeassistant-2025.9.3.dist-info → homeassistant-2025.9.4.dist-info}/top_level.txt +0 -0
@@ -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
  }
@@ -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": {
@@ -131,7 +131,7 @@
131
131
  "no_battery_error": "A bateria do robot de limpeza est\u00e1 fraca",
132
132
  "no_dust_bin_error": "O dep\u00f3sito do p\u00f3 n\u00e3o est\u00e1 instalado",
133
133
  "no_filter_error": "Erro no filtro",
134
- "out_of_balance_error": "Carga desiquilibrada",
134
+ "out_of_balance_error": "Carga desequilibrada",
135
135
  "overfill_error": "Erro de enchimento excessivo",
136
136
  "part_malfunction_error": "Erro AIE",
137
137
  "power_code_connection_error": "Erro na liga\u00e7\u00e3o do cabo de alimenta\u00e7\u00e3o",
@@ -145,7 +145,7 @@
145
145
  "timeout_error": "Erro de tempo limite",
146
146
  "turbidity_sensor_error": "Erro do sensor de turbidez",
147
147
  "unable_to_lock_error": "Erro no bloqueio da porta",
148
- "unbalanced_load_error": "Carga desiquilibrada",
148
+ "unbalanced_load_error": "Carga desequilibrada",
149
149
  "unknown_error": "O produto requer aten\u00e7\u00e3o",
150
150
  "vibration_sensor_error": "Erro no sensor de vibra\u00e7\u00f5es",
151
151
  "water_drain_error": "Problema na drenagem da \u00e1gua",
@@ -232,7 +232,7 @@
232
232
  "name": "{location} conclus\u00e3o diferida"
233
233
  },
234
234
  "sleep_timer_relative_hour_to_stop": {
235
- "name": "Temporizador de suspen\u00e7\u00e3o"
235
+ "name": "Temporizador de sono"
236
236
  },
237
237
  "sleep_timer_relative_hour_to_stop_for_location": {
238
238
  "name": "{location} temporizador de suspens\u00e3o"
@@ -547,7 +547,7 @@
547
547
  "cooking_in_progress": "A cozinhar",
548
548
  "cool_down": "Arrefecer",
549
549
  "cooling": "A arrefecer",
550
- "detecting": "A detectar",
550
+ "detecting": "A detetar",
551
551
  "detergent_amount": "Fornecer informa\u00e7\u00f5es sobre a quantidade de detergente",
552
552
  "diagnosis": "Diagn\u00f3stico inteligente em curso",
553
553
  "dispensing": "A auto dispensar",
@@ -575,7 +575,7 @@
575
575
  "monitoring_detecting": "O Home Guard est\u00e1 ativo",
576
576
  "monitoring_moving": "Ir para o ponto de in\u00edcio",
577
577
  "monitoring_positioning": "Definir o ponto de partida do Home Guard",
578
- "night_dry": "Night dry",
578
+ "night_dry": "Secagem noturna",
579
579
  "oven_setting": "Placa de cozinha ligada",
580
580
  "pause": "Em pausa",
581
581
  "paused": "Em pausa",
@@ -634,7 +634,7 @@
634
634
  "cooking_in_progress": "A cozinhar",
635
635
  "cool_down": "Arrefecer",
636
636
  "cooling": "A arrefecer",
637
- "detecting": "A detectar",
637
+ "detecting": "A detetar",
638
638
  "detergent_amount": "Fornecer informa\u00e7\u00f5es sobre a quantidade de detergente",
639
639
  "diagnosis": "Diagn\u00f3stico inteligente em curso",
640
640
  "dispensing": "A auto dispensar",
@@ -662,7 +662,7 @@
662
662
  "monitoring_detecting": "O Home Guard est\u00e1 ativo",
663
663
  "monitoring_moving": "Ir para o ponto de in\u00edcio",
664
664
  "monitoring_positioning": "Definir o ponto de partida do Home Guard",
665
- "night_dry": "Night dry",
665
+ "night_dry": "Secagem noturna",
666
666
  "oven_setting": "Placa de cozinha ligada",
667
667
  "pause": "Em pausa",
668
668
  "paused": "Em pausa",
@@ -786,7 +786,7 @@
786
786
  "hop_oil_capsule_1": {
787
787
  "name": "Primeiro salto",
788
788
  "state": {
789
- "cascade": "Cascade",
789
+ "cascade": "Cascata",
790
790
  "chinook": "Chinook",
791
791
  "citrussy": "Citrussy",
792
792
  "fuggles": "Fuggles",
@@ -797,7 +797,7 @@
797
797
  "hop_oil_capsule_2": {
798
798
  "name": "Segundo salto",
799
799
  "state": {
800
- "cascade": "Cascade",
800
+ "cascade": "Cascata",
801
801
  "chinook": "Chinook",
802
802
  "citrussy": "Citrussy",
803
803
  "fuggles": "Fuggles",
@@ -926,7 +926,7 @@
926
926
  "name": "{location} tempo de funcionamento"
927
927
  },
928
928
  "sleep_timer_relative_to_stop": {
929
- "name": "Temporizador de suspen\u00e7\u00e3o"
929
+ "name": "Temporizador de sono"
930
930
  },
931
931
  "sleep_timer_relative_to_stop_for_location": {
932
932
  "name": "{location} temporizador de suspens\u00e3o"
@@ -0,0 +1,38 @@
1
+ {
2
+ "config": {
3
+ "error": {
4
+ "token_unauthorized": "\u0422\u043e\u043a\u0435\u043d \u043d\u0435\u0434\u0456\u0439\u0441\u043d\u0438\u0439 \u0430\u0431\u043e \u043d\u0435\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u0438\u0439."
5
+ },
6
+ "step": {
7
+ "user": {
8
+ "data": {
9
+ "access_token": "\u0422\u043e\u043a\u0435\u043d \u043e\u0441\u043e\u0431\u0438\u0441\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0443 (PAT)",
10
+ "country": "\u041a\u0440\u0430\u0457\u043d\u0430"
11
+ },
12
+ "description": "\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u0432\u0435\u0434\u0456\u0442\u044c ThinQ [PAT(Personal Access Token)]({pat_url}), \u0441\u0442\u0432\u043e\u0440\u0435\u043d\u0438\u0439 \u0437\u0430 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u043e\u044e \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443 LG ThinQ.",
13
+ "title": "\u041f\u0456\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044f \u0434\u043e ThinQ"
14
+ }
15
+ }
16
+ },
17
+ "entity": {
18
+ "binary_sensor": {
19
+ "eco_friendly_mode": {
20
+ "name": "\u0415\u043a\u043e\u043b\u043e\u0433\u0456\u0447\u043d\u0438\u0439 \u0440\u0435\u0436\u0438\u043c"
21
+ },
22
+ "power_save_enabled": {
23
+ "name": "\u0420\u0435\u0436\u0438\u043c \u0435\u043d\u0435\u0440\u0433\u043e\u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043d\u044f"
24
+ },
25
+ "remote_control_enabled": {
26
+ "name": "\u041f\u0443\u043b\u044c\u0442 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0456\u0439\u043d\u043e\u0433\u043e \u043a\u0435\u0440\u0443\u0432\u0430\u043d\u043d\u044f"
27
+ },
28
+ "rinse_refill": {
29
+ "name": "\u041f\u043e\u0442\u0440\u0456\u0431\u043d\u043e \u0434\u043e\u043b\u0438\u0442\u0438 \u043e\u043f\u043e\u043b\u0456\u0441\u043a\u0443\u0432\u0430\u0447"
30
+ }
31
+ },
32
+ "switch": {
33
+ "operation_power": {
34
+ "name": "\u0423\u0432\u0456\u043c\u043a\u043d\u0435\u043d\u043d\u044f"
35
+ }
36
+ }
37
+ }
38
+ }
@@ -32,7 +32,7 @@
32
32
  "entity": {
33
33
  "sensor": {
34
34
  "albums": {
35
- "name": "Albuns"
35
+ "name": "\u00c1lbuns"
36
36
  },
37
37
  "disk_space": {
38
38
  "name": "Espa\u00e7o em disco"
@@ -49,7 +49,8 @@
49
49
  },
50
50
  "extra_fields": {
51
51
  "brightness_pct": "Brillantor",
52
- "flash": "Flaix"
52
+ "flash": "Flaix",
53
+ "for": "Durada"
53
54
  },
54
55
  "trigger_type": {
55
56
  "changed_states": "{entity_name} s'engegui o s'apagui",
@@ -86,5 +86,24 @@
86
86
  }
87
87
  }
88
88
  },
89
+ "services": {
90
+ "toggle": {
91
+ "description": "\u041f\u0435\u0440\u0435\u043c\u0438\u043a\u0430\u0454 \u043e\u0434\u043d\u0435 \u0430\u0431\u043e \u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0432\u0456\u0442\u0438\u043b\u044c\u043d\u0438\u043a\u0456\u0432 \u0437 \u0443\u0432\u0456\u043c\u043a\u043d\u0435\u043d\u043e\u0433\u043e \u043d\u0430 \u0432\u0438\u043c\u043a\u043d\u0435\u043d\u0438\u0439 \u0441\u0442\u0430\u043d \u0430\u0431\u043e \u0437 \u0432\u0438\u043c\u043a\u043d\u0435\u043d\u043e\u0433\u043e \u043d\u0430 \u0443\u0432\u0456\u043c\u043a\u043d\u0435\u043d\u0438\u0439, \u0437\u0430\u043b\u0435\u0436\u043d\u043e \u0432\u0456\u0434 \u0457\u0445\u043d\u044c\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u043d\u0443.",
92
+ "fields": {
93
+ "brightness_pct": {
94
+ "name": "\u042f\u0441\u043a\u0440\u0430\u0432\u0456\u0441\u0442\u044c"
95
+ },
96
+ "profile": {
97
+ "name": "\u041f\u0440\u043e\u0444\u0456\u043b\u044c"
98
+ },
99
+ "rgb_color": {
100
+ "name": "\u041a\u043e\u043b\u0456\u0440"
101
+ },
102
+ "transition": {
103
+ "name": "\u041f\u0435\u0440\u0435\u0445\u0456\u0434"
104
+ }
105
+ }
106
+ }
107
+ },
89
108
  "title": "\u041e\u0441\u0432\u0456\u0442\u043b\u0435\u043d\u043d\u044f"
90
109
  }
@@ -26,6 +26,27 @@
26
26
  }
27
27
  },
28
28
  "entity": {
29
+ "binary_sensor": {
30
+ "sleep_mode": {
31
+ "name": "\u0421\u043f\u043b\u044f\u0447\u0438\u0439 \u0440\u0435\u0436\u0438\u043c"
32
+ },
33
+ "sleeping": {
34
+ "name": "\u0421\u043e\u043d"
35
+ }
36
+ },
37
+ "button": {
38
+ "reset_waste_drawer": {
39
+ "name": "\u0421\u043a\u0438\u043d\u0443\u0442\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0434\u043b\u044f \u0432\u0456\u0434\u0445\u043e\u0434\u0456\u0432"
40
+ }
41
+ },
42
+ "select": {
43
+ "brightness_level": {
44
+ "name": "\u042f\u0441\u043a\u0440\u0430\u0432\u0456\u0441\u0442\u044c \u043f\u0430\u043d\u0435\u043b\u0456"
45
+ },
46
+ "cycle_delay": {
47
+ "name": "\u0427\u0430\u0441 \u043e\u0447\u0456\u043a\u0443\u0432\u0430\u043d\u043d\u044f \u0446\u0438\u043a\u043b\u0443 \u043e\u0447\u0438\u0449\u0435\u043d\u043d\u044f (\u0445\u0432\u0438\u043b\u0438\u043d\u0438)"
48
+ }
49
+ },
29
50
  "sensor": {
30
51
  "hopper_status": {
31
52
  "state": {
@@ -227,6 +227,9 @@
227
227
  "flow": {
228
228
  "name": "Flux"
229
229
  },
230
+ "nitrogen_dioxide": {
231
+ "name": "Di\u00f2xid de nitrogen"
232
+ },
230
233
  "operational_state": {
231
234
  "state": {
232
235
  "charging": "Carregant",
@@ -193,6 +193,9 @@
193
193
  "auto_relock_timer": {
194
194
  "name": "Tempo para voltar a trancar automaticamente"
195
195
  },
196
+ "cook_time": {
197
+ "name": "Tempo de cozedura"
198
+ },
196
199
  "led_indicator_intensity_off": {
197
200
  "name": "Intensidade do LED desligado"
198
201
  },
@@ -438,6 +441,9 @@
438
441
  "hepa_filter_condition": {
439
442
  "name": "Estado do filtro Hepa"
440
443
  },
444
+ "nitrogen_dioxide": {
445
+ "name": "Di\u00f3xido de azoto"
446
+ },
441
447
  "operational_state": {
442
448
  "name": "Estado operacional",
443
449
  "state": {
@@ -187,6 +187,9 @@
187
187
  "auto_relock_timer": {
188
188
  "name": "\u0412\u0440\u0435\u043c\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438"
189
189
  },
190
+ "cook_time": {
191
+ "name": "\u0412\u0440\u0435\u043c\u044f \u043f\u0440\u0438\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u0438\u044f"
192
+ },
190
193
  "led_indicator_intensity_off": {
191
194
  "name": "\u0418\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u0430"
192
195
  },
@@ -417,6 +420,9 @@
417
420
  "hepa_filter_condition": {
418
421
  "name": "\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 HEPA-\u0444\u0438\u043b\u044c\u0442\u0440\u0430"
419
422
  },
423
+ "nitrogen_dioxide": {
424
+ "name": "\u0414\u0438\u043e\u043a\u0441\u0438\u0434 \u0430\u0437\u043e\u0442\u0430"
425
+ },
420
426
  "operational_state": {
421
427
  "name": "\u0420\u0430\u0431\u043e\u0447\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435",
422
428
  "state": {
@@ -16,7 +16,7 @@
16
16
  "reauth_confirm": {
17
17
  "data": {
18
18
  "password": "Palavra-passe",
19
- "username": "E-mail"
19
+ "username": "Email"
20
20
  },
21
21
  "description": "A integra\u00e7\u00e3o do MELCloud precisa de autenticar novamente os seus detalhes de liga\u00e7\u00e3o",
22
22
  "title": "A autentica\u00e7\u00e3o expirou para {name}"
@@ -34,7 +34,7 @@
34
34
  "user": {
35
35
  "data": {
36
36
  "password": "Palavra-passe",
37
- "username": "E-mail"
37
+ "username": "Email"
38
38
  },
39
39
  "description": "Ligue-se usando sua conta MELCloud.",
40
40
  "title": "Conectar ao MELCloud"
@@ -14,7 +14,7 @@
14
14
  "data": {
15
15
  "api_key": "Chave da API"
16
16
  },
17
- "description": "Volte a introduzir a sua chave da API do DataHub. Se ainda estiver a utilizar uma chave API Datapoint antiga, tem de se inscrever na API DataHub agora, consulte [documentation]({docs_url}) para obter mais informa\u00e7\u00f5es.",
17
+ "description": "Volte a introduzir a sua chave da API do DataHub. Se ainda estiver a utilizar uma chave API Datapoint antiga, tem de se inscrever na API DataHub agora, consulte [documenta\u00e7\u00e3o]({docs_url}) para obter mais informa\u00e7\u00f5es.",
18
18
  "title": "Reautenticar com a API do DataHub"
19
19
  },
20
20
  "user": {
@@ -2,12 +2,13 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- import asyncio.timeouts
5
+ import asyncio
6
6
  from collections.abc import Callable
7
7
  from dataclasses import dataclass
8
8
  from datetime import timedelta
9
9
  import logging
10
10
 
11
+ from aiohttp import ClientResponseError
11
12
  from pymiele import MieleAction, MieleAPI, MieleDevice
12
13
 
13
14
  from homeassistant.config_entries import ConfigEntry
@@ -66,7 +67,22 @@ class MieleDataUpdateCoordinator(DataUpdateCoordinator[MieleCoordinatorData]):
66
67
  self.devices = devices
67
68
  actions = {}
68
69
  for device_id in devices:
69
- actions_json = await self.api.get_actions(device_id)
70
+ try:
71
+ actions_json = await self.api.get_actions(device_id)
72
+ except ClientResponseError as err:
73
+ _LOGGER.debug(
74
+ "Error fetching actions for device %s: Status: %s, Message: %s",
75
+ device_id,
76
+ err.status,
77
+ err.message,
78
+ )
79
+ actions_json = {}
80
+ except TimeoutError:
81
+ _LOGGER.debug(
82
+ "Timeout fetching actions for device %s",
83
+ device_id,
84
+ )
85
+ actions_json = {}
70
86
  actions[device_id] = MieleAction(actions_json)
71
87
  return MieleCoordinatorData(devices=devices, actions=actions)
72
88
 
@@ -402,7 +402,7 @@
402
402
  "cottons_hygiene": "Higiene dos algod\u00f5es",
403
403
  "courgette_diced": "Courgette (cortada em cubos)",
404
404
  "courgette_sliced": "Courgette (cortada em peda\u00e7os)",
405
- "cranberries": "Cranberries",
405
+ "cranberries": "Arandos",
406
406
  "crevettes": "Crevettes",
407
407
  "curtains": "Cortinados",
408
408
  "custom_program_1": "Programa personalizado 1",
@@ -877,7 +877,7 @@
877
877
  "white_asparagus_medium": "Espargos brancos (m\u00e9dios)",
878
878
  "white_asparagus_thick": "Espargos brancos (grossos)",
879
879
  "white_asparagus_thin": "Espargos brancos (finos)",
880
- "white_beans": "Feij\u00e3o branco",
880
+ "white_beans": "Feij\u00e3o-branco",
881
881
  "white_bread_baking_tin": "P\u00e3o branco (forma)",
882
882
  "white_bread_on_tray": "P\u00e3o branco (tabuleiro)",
883
883
  "white_rolls": "Bolinhas",
@@ -708,7 +708,7 @@
708
708
  "pyrolytic": "Pyrolytisk",
709
709
  "quiche_lorraine": "Quiche Lorraine",
710
710
  "quick_mw": "Snabb MW",
711
- "quick_power_wash": "SnabbPowerWash",
711
+ "quick_power_wash": "QuickPowerWash",
712
712
  "quinces_diced": "Kvittenfrukter (t\u00e4rnade)",
713
713
  "quinoa": "Quinoa",
714
714
  "rabbit": "Kanin",
@@ -916,7 +916,7 @@
916
916
  "dispensing": "Dispensering",
917
917
  "docked": "Dockad",
918
918
  "door_open": "D\u00f6rr \u00f6ppen",
919
- "drain": "Dr\u00e4nerar",
919
+ "drain": "T\u00f6mmer",
920
920
  "drying": "Torkar",
921
921
  "dust_box_missing": "Saknar damml\u00e5da",
922
922
  "energy_save": "Energibesparing",
@@ -965,7 +965,7 @@
965
965
  "slow_roasting": "L\u00e5ngsam rostning",
966
966
  "smoothing": "Utj\u00e4mning",
967
967
  "soak": "Bl\u00f6tl\u00e4gg",
968
- "spin": "Snurra",
968
+ "spin": "Centrifugerar",
969
969
  "starch_stop": "Stopp f\u00f6r st\u00e4rkelse",
970
970
  "steam_reduction": "\u00c5ngreducering",
971
971
  "steam_smoothing": "\u00c5ngutj\u00e4mning",
@@ -11,12 +11,12 @@
11
11
  "step": {
12
12
  "user": {
13
13
  "data": {
14
- "email": "E-mail",
14
+ "email": "Email",
15
15
  "mfa_code": "Introduza o seu c\u00f3digo MFA",
16
16
  "mfa_secret": "Adicione o seu segredo MFA. Consulte os documentos para obter ajuda.",
17
17
  "password": "Palavra-passe"
18
18
  },
19
- "description": "Introduza o seu email e palavra-passe Monarch Money. Se necess\u00e1rio, ser-lhe-\u00e1 tamb\u00e9m pedido o c\u00f3digo MFA."
19
+ "description": "Introduza o seu email e palavra-passe Monarch Money. Se necess\u00e1rio, ser\u00e1 tamb\u00e9m pedido o c\u00f3digo MFA."
20
20
  }
21
21
  }
22
22
  },
@@ -68,7 +68,10 @@
68
68
  },
69
69
  "select": {
70
70
  "motionmount_preset": {
71
- "name": "I\u0161 anksto nustatytas"
71
+ "name": "I\u0161 anksto nustatytas",
72
+ "state": {
73
+ "0_wall": "Siena"
74
+ }
72
75
  }
73
76
  },
74
77
  "sensor": {
@@ -68,7 +68,10 @@
68
68
  },
69
69
  "select": {
70
70
  "motionmount_preset": {
71
- "name": "Predefini\u00e7\u00e3o"
71
+ "name": "Predefini\u00e7\u00e3o",
72
+ "state": {
73
+ "0_wall": "Parede"
74
+ }
72
75
  }
73
76
  },
74
77
  "sensor": {
@@ -629,7 +629,7 @@
629
629
  },
630
630
  "data_description": {
631
631
  "direction_command_template": "[\u0160ablona](https://www.home-assistant.io/docs/configuration/templating/#using-command-templates-with-mqtt) pro sestaven\u00ed dat, kter\u00e1 maj\u00ed b\u00fdt publikov\u00e1na v t\u00e9matu p\u0159\u00edkazu \"direction\". Prom\u011bnn\u00e1 \u0161ablony \"value\" bude bu\u010f \"forward\" nebo \"reverse\".",
632
- "direction_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f pro zm\u011bnu sm\u011bru ot\u00e1\u010den\u00ed ventil\u00e1toru, bu\u010f \"forward\" nebo \"reverse\". Pro p\u0159izp\u016fsoben\u00ed sm\u011bru ot\u00e1\u010den\u00ed pou\u017eijte \u0161ablonu p\u0159\u00edkazu \"direction\". [V\u00edce informac\u00ed]({url}#direction_command_topic)",
632
+ "direction_command_topic": "T\u00e9ma MQTT pro publikov\u00e1n\u00ed p\u0159\u00edkaz\u016f pro zm\u011bnu sm\u011bru ot\u00e1\u010den\u00ed ventil\u00e1toru. Datov\u00e1 \u010d\u00e1st bude bu\u010f \"forward\" nebo \"reverse\". Pro p\u0159izp\u016fsoben\u00ed sm\u011bru ot\u00e1\u010den\u00ed pou\u017eijte \u0161ablonu p\u0159\u00edkazu \"direction\". [V\u00edce informac\u00ed]({url}#direction_command_topic)",
633
633
  "direction_state_topic": "T\u00e9ma MQTT se p\u0159ihl\u00e1silo k odb\u011bru informac\u00ed o sm\u011bru ot\u00e1\u010den\u00ed ventil\u00e1toru. Akceptovan\u00e9 stavy jsou \"forward\" nebo \"reverse\". [V\u00edce informac\u00ed]({url}#direction_state_topic)",
634
634
  "direction_value_template": "Definuje [\u0161ablonu](https://www.home-assistant.io/docs/configuration/templating/#using-value-templates-with-mqtt) pro extrakci hodnoty sm\u011bru ot\u00e1\u010den\u00ed ventil\u00e1toru. \u0160ablona by m\u011bla vracet bu\u010f \"forward\", nebo \"reverse\". Pokud \u0161ablona vr\u00e1t\u00ed pr\u00e1zdn\u00fd \u0159et\u011bzec, sm\u011br bude ignorov\u00e1n."
635
635
  },