homeassistant 2025.7.0b2__py3-none-any.whl → 2025.7.0b4__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 (283) hide show
  1. homeassistant/components/ai_task/translations/fr.json +22 -1
  2. homeassistant/components/ai_task/translations/hu.json +22 -0
  3. homeassistant/components/ai_task/translations/it.json +22 -0
  4. homeassistant/components/alexa_devices/manifest.json +1 -1
  5. homeassistant/components/alexa_devices/translations/hu.json +4 -1
  6. homeassistant/components/alexa_devices/translations/it.json +29 -0
  7. homeassistant/components/alexa_devices/translations/pt.json +12 -1
  8. homeassistant/components/altruist/translations/hu.json +19 -0
  9. homeassistant/components/anthropic/translations/fr.json +37 -0
  10. homeassistant/components/anthropic/translations/hu.json +19 -0
  11. homeassistant/components/anthropic/translations/it.json +37 -0
  12. homeassistant/components/assist_satellite/translations/fr.json +8 -0
  13. homeassistant/components/assist_satellite/translations/hu.json +38 -0
  14. homeassistant/components/assist_satellite/translations/it.json +8 -0
  15. homeassistant/components/blue_current/translations/el.json +3 -1
  16. homeassistant/components/bluetooth/translations/el.json +3 -0
  17. homeassistant/components/denonavr/translations/el.json +5 -0
  18. homeassistant/components/derivative/translations/fr.json +4 -0
  19. homeassistant/components/derivative/translations/it.json +4 -0
  20. homeassistant/components/devolo_home_control/translations/hu.json +21 -0
  21. homeassistant/components/devolo_home_control/translations/it.json +6 -0
  22. homeassistant/components/dsmr/sensor.py +8 -0
  23. homeassistant/components/ecovacs/translations/el.json +1 -0
  24. homeassistant/components/electric_kiwi/translations/hu.json +6 -0
  25. homeassistant/components/emoncms/translations/el.json +3 -0
  26. homeassistant/components/enphase_envoy/translations/hu.json +18 -0
  27. homeassistant/components/ezviz/translations/it.json +10 -0
  28. homeassistant/components/fitbit/translations/hu.json +6 -0
  29. homeassistant/components/fronius/translations/el.json +14 -1
  30. homeassistant/components/frontend/manifest.json +1 -1
  31. homeassistant/components/geocaching/translations/hu.json +6 -0
  32. homeassistant/components/google/translations/hu.json +6 -0
  33. homeassistant/components/google_assistant_sdk/translations/hu.json +6 -0
  34. homeassistant/components/google_drive/translations/hu.json +6 -0
  35. homeassistant/components/google_generative_ai_conversation/translations/fr.json +82 -1
  36. homeassistant/components/google_generative_ai_conversation/translations/hu.json +68 -0
  37. homeassistant/components/google_generative_ai_conversation/translations/it.json +20 -0
  38. homeassistant/components/google_generative_ai_conversation/translations/pt.json +28 -0
  39. homeassistant/components/google_mail/translations/hu.json +6 -0
  40. homeassistant/components/google_photos/translations/hu.json +6 -0
  41. homeassistant/components/google_sheets/translations/hu.json +6 -0
  42. homeassistant/components/google_tasks/translations/hu.json +6 -0
  43. homeassistant/components/home_connect/translations/hu.json +6 -0
  44. homeassistant/components/homeassistant/translations/fr.json +1 -0
  45. homeassistant/components/homeassistant/translations/it.json +1 -0
  46. homeassistant/components/homeassistant_hardware/translations/el.json +1 -0
  47. homeassistant/components/homeassistant_hardware/translations/es.json +1 -0
  48. homeassistant/components/homeassistant_hardware/translations/et.json +1 -0
  49. homeassistant/components/homeassistant_hardware/translations/fr.json +4 -0
  50. homeassistant/components/homeassistant_hardware/translations/it.json +6 -0
  51. homeassistant/components/homeassistant_hardware/translations/pt.json +1 -0
  52. homeassistant/components/homeassistant_hardware/translations/sk.json +1 -0
  53. homeassistant/components/homeassistant_hardware/translations/sv.json +1 -0
  54. homeassistant/components/homeassistant_hardware/translations/zh-Hans.json +1 -0
  55. homeassistant/components/homeassistant_hardware/translations/zh-Hant.json +1 -0
  56. homeassistant/components/homeassistant_sky_connect/translations/el.json +2 -0
  57. homeassistant/components/homeassistant_sky_connect/translations/es.json +2 -0
  58. homeassistant/components/homeassistant_sky_connect/translations/et.json +2 -0
  59. homeassistant/components/homeassistant_sky_connect/translations/fr.json +4 -0
  60. homeassistant/components/homeassistant_sky_connect/translations/it.json +4 -0
  61. homeassistant/components/homeassistant_sky_connect/translations/pt.json +2 -0
  62. homeassistant/components/homeassistant_sky_connect/translations/sk.json +2 -0
  63. homeassistant/components/homeassistant_sky_connect/translations/sv.json +2 -0
  64. homeassistant/components/homeassistant_sky_connect/translations/zh-Hans.json +2 -0
  65. homeassistant/components/homeassistant_sky_connect/translations/zh-Hant.json +2 -0
  66. homeassistant/components/homeassistant_yellow/translations/el.json +2 -0
  67. homeassistant/components/homeassistant_yellow/translations/es.json +2 -0
  68. homeassistant/components/homeassistant_yellow/translations/et.json +2 -0
  69. homeassistant/components/homeassistant_yellow/translations/fr.json +2 -0
  70. homeassistant/components/homeassistant_yellow/translations/hu.json +1 -0
  71. homeassistant/components/homeassistant_yellow/translations/it.json +2 -0
  72. homeassistant/components/homeassistant_yellow/translations/pt.json +2 -0
  73. homeassistant/components/homeassistant_yellow/translations/sk.json +2 -0
  74. homeassistant/components/homeassistant_yellow/translations/sv.json +1 -0
  75. homeassistant/components/homeassistant_yellow/translations/zh-Hans.json +2 -0
  76. homeassistant/components/homeassistant_yellow/translations/zh-Hant.json +2 -0
  77. homeassistant/components/homee/translations/hu.json +25 -0
  78. homeassistant/components/homewizard/translations/sv.json +1 -1
  79. homeassistant/components/honeywell/manifest.json +1 -1
  80. homeassistant/components/husqvarna_automower/button.py +3 -1
  81. homeassistant/components/husqvarna_automower/translations/hu.json +6 -0
  82. homeassistant/components/imap/translations/fr.json +2 -0
  83. homeassistant/components/iotty/translations/hu.json +6 -0
  84. homeassistant/components/jellyfin/client_wrapper.py +1 -2
  85. homeassistant/components/jellyfin/coordinator.py +3 -0
  86. homeassistant/components/jellyfin/manifest.json +1 -2
  87. homeassistant/components/keenetic_ndms2/translations/hu.json +3 -0
  88. homeassistant/components/lametric/translations/hu.json +6 -0
  89. homeassistant/components/lifx/translations/el.json +2 -1
  90. homeassistant/components/litterrobot/translations/hu.json +3 -0
  91. homeassistant/components/litterrobot/translations/it.json +4 -0
  92. homeassistant/components/lyric/translations/hu.json +6 -0
  93. homeassistant/components/matter/translations/hu.json +10 -0
  94. homeassistant/components/mcp/translations/hu.json +6 -0
  95. homeassistant/components/microbees/translations/hu.json +6 -0
  96. homeassistant/components/miele/translations/hu.json +28 -1
  97. homeassistant/components/monzo/translations/hu.json +6 -0
  98. homeassistant/components/mqtt/config_flow.py +34 -7
  99. homeassistant/components/mqtt/strings.json +11 -4
  100. homeassistant/components/mqtt/translations/bg.json +1 -3
  101. homeassistant/components/mqtt/translations/cs.json +2 -6
  102. homeassistant/components/mqtt/translations/de.json +23 -16
  103. homeassistant/components/mqtt/translations/el.json +11 -0
  104. homeassistant/components/mqtt/translations/en-GB.json +2 -6
  105. homeassistant/components/mqtt/translations/en.json +13 -6
  106. homeassistant/components/mqtt/translations/es.json +2 -6
  107. homeassistant/components/mqtt/translations/et.json +13 -6
  108. homeassistant/components/mqtt/translations/fr.json +27 -6
  109. homeassistant/components/mqtt/translations/fy.json +2 -5
  110. homeassistant/components/mqtt/translations/ga.json +2 -6
  111. homeassistant/components/mqtt/translations/he.json +2 -6
  112. homeassistant/components/mqtt/translations/hu.json +2 -6
  113. homeassistant/components/mqtt/translations/it.json +25 -0
  114. homeassistant/components/mqtt/translations/ja.json +1 -4
  115. homeassistant/components/mqtt/translations/lt.json +2 -6
  116. homeassistant/components/mqtt/translations/mk.json +1 -6
  117. homeassistant/components/mqtt/translations/nl.json +27 -6
  118. homeassistant/components/mqtt/translations/pt.json +4 -6
  119. homeassistant/components/mqtt/translations/ru.json +2 -6
  120. homeassistant/components/mqtt/translations/sk.json +13 -6
  121. homeassistant/components/mqtt/translations/sl.json +2 -6
  122. homeassistant/components/mqtt/translations/sv.json +2 -6
  123. homeassistant/components/mqtt/translations/tr.json +2 -6
  124. homeassistant/components/mqtt/translations/zh-Hans.json +2 -6
  125. homeassistant/components/mqtt/translations/zh-Hant.json +13 -6
  126. homeassistant/components/myuplink/translations/hu.json +6 -0
  127. homeassistant/components/neato/translations/hu.json +6 -0
  128. homeassistant/components/nest/translations/hu.json +6 -0
  129. homeassistant/components/netatmo/translations/hu.json +6 -0
  130. homeassistant/components/nextdns/translations/fr.json +6 -0
  131. homeassistant/components/ntfy/translations/hu.json +112 -2
  132. homeassistant/components/nut/translations/el.json +42 -0
  133. homeassistant/components/ollama/translations/fr.json +33 -0
  134. homeassistant/components/ollama/translations/hu.json +33 -0
  135. homeassistant/components/ollama/translations/it.json +35 -0
  136. homeassistant/components/ondilo_ico/translations/hu.json +6 -0
  137. homeassistant/components/onedrive/translations/hu.json +6 -0
  138. homeassistant/components/onewire/translations/sv.json +1 -1
  139. homeassistant/components/openai_conversation/translations/fr.json +56 -0
  140. homeassistant/components/openai_conversation/translations/hu.json +56 -0
  141. homeassistant/components/openai_conversation/translations/it.json +56 -0
  142. homeassistant/components/paperless_ngx/manifest.json +1 -1
  143. homeassistant/components/paperless_ngx/translations/hu.json +4 -2
  144. homeassistant/components/peblar/translations/el.json +12 -0
  145. homeassistant/components/pegel_online/translations/bg.json +1 -2
  146. homeassistant/components/pegel_online/translations/ca.json +1 -2
  147. homeassistant/components/pegel_online/translations/cs.json +1 -2
  148. homeassistant/components/pegel_online/translations/de.json +1 -1
  149. homeassistant/components/pegel_online/translations/el.json +1 -1
  150. homeassistant/components/pegel_online/translations/en-GB.json +1 -2
  151. homeassistant/components/pegel_online/translations/en.json +1 -1
  152. homeassistant/components/pegel_online/translations/es.json +1 -1
  153. homeassistant/components/pegel_online/translations/et.json +1 -1
  154. homeassistant/components/pegel_online/translations/fi.json +1 -2
  155. homeassistant/components/pegel_online/translations/fr.json +1 -2
  156. homeassistant/components/pegel_online/translations/hu.json +1 -2
  157. homeassistant/components/pegel_online/translations/id.json +1 -2
  158. homeassistant/components/pegel_online/translations/it.json +1 -2
  159. homeassistant/components/pegel_online/translations/ja.json +1 -2
  160. homeassistant/components/pegel_online/translations/ko.json +1 -2
  161. homeassistant/components/pegel_online/translations/lt.json +1 -2
  162. homeassistant/components/pegel_online/translations/lv.json +1 -2
  163. homeassistant/components/pegel_online/translations/nl.json +1 -2
  164. homeassistant/components/pegel_online/translations/pt.json +1 -2
  165. homeassistant/components/pegel_online/translations/ru.json +1 -2
  166. homeassistant/components/pegel_online/translations/sk.json +1 -1
  167. homeassistant/components/pegel_online/translations/sv.json +1 -2
  168. homeassistant/components/pegel_online/translations/tr.json +1 -2
  169. homeassistant/components/pegel_online/translations/zh-Hant.json +1 -1
  170. homeassistant/components/pi_hole/translations/fr.json +1 -0
  171. homeassistant/components/playstation_network/translations/fr.json +15 -0
  172. homeassistant/components/playstation_network/translations/hu.json +73 -0
  173. homeassistant/components/playstation_network/translations/it.json +43 -0
  174. homeassistant/components/point/translations/hu.json +6 -0
  175. homeassistant/components/rest/data.py +40 -1
  176. homeassistant/components/screenlogic/translations/el.json +7 -0
  177. homeassistant/components/sensibo/translations/el.json +1 -0
  178. homeassistant/components/senz/translations/hu.json +6 -0
  179. homeassistant/components/shelly/entity.py +10 -3
  180. homeassistant/components/smappee/translations/hu.json +6 -0
  181. homeassistant/components/smartthings/translations/hu.json +6 -0
  182. homeassistant/components/sonos/translations/fr.json +6 -0
  183. homeassistant/components/sonos/translations/it.json +11 -0
  184. homeassistant/components/spotify/translations/hu.json +6 -0
  185. homeassistant/components/stream/__init__.py +8 -4
  186. homeassistant/components/stream/const.py +2 -1
  187. homeassistant/components/stream/core.py +3 -1
  188. homeassistant/components/subaru/translations/el.json +2 -0
  189. homeassistant/components/subaru/translations/en-GB.json +2 -0
  190. homeassistant/components/subaru/translations/es.json +2 -0
  191. homeassistant/components/subaru/translations/et.json +2 -0
  192. homeassistant/components/subaru/translations/pt.json +2 -0
  193. homeassistant/components/subaru/translations/sk.json +2 -0
  194. homeassistant/components/subaru/translations/zh-Hans.json +2 -0
  195. homeassistant/components/subaru/translations/zh-Hant.json +2 -0
  196. homeassistant/components/swiss_public_transport/translations/el.json +60 -6
  197. homeassistant/components/switchbot/translations/hu.json +19 -0
  198. homeassistant/components/switchbot/translations/it.json +53 -0
  199. homeassistant/components/switchbot_cloud/__init__.py +6 -1
  200. homeassistant/components/switchbot_cloud/binary_sensor.py +8 -1
  201. homeassistant/components/switchbot_cloud/sensor.py +3 -2
  202. homeassistant/components/telegram_bot/manifest.json +1 -1
  203. homeassistant/components/telegram_bot/translations/fr.json +3 -1
  204. homeassistant/components/telegram_bot/translations/hu.json +1 -0
  205. homeassistant/components/telegram_bot/translations/it.json +30 -0
  206. homeassistant/components/telegram_bot/translations/pt.json +30 -0
  207. homeassistant/components/tesla_fleet/translations/hu.json +7 -0
  208. homeassistant/components/teslemetry/coordinator.py +6 -6
  209. homeassistant/components/thermopro/strings.json +1 -1
  210. homeassistant/components/thermopro/translations/cs.json +0 -7
  211. homeassistant/components/thermopro/translations/de.json +1 -1
  212. homeassistant/components/thermopro/translations/el.json +1 -1
  213. homeassistant/components/thermopro/translations/en-GB.json +1 -1
  214. homeassistant/components/thermopro/translations/en.json +1 -1
  215. homeassistant/components/thermopro/translations/et.json +1 -1
  216. homeassistant/components/thermopro/translations/hu.json +0 -7
  217. homeassistant/components/thermopro/translations/ja.json +0 -7
  218. homeassistant/components/thermopro/translations/lt.json +0 -7
  219. homeassistant/components/thermopro/translations/nl.json +0 -7
  220. homeassistant/components/thermopro/translations/pt-BR.json +0 -7
  221. homeassistant/components/thermopro/translations/pt.json +0 -7
  222. homeassistant/components/thermopro/translations/ru.json +0 -7
  223. homeassistant/components/thermopro/translations/sk.json +1 -1
  224. homeassistant/components/thermopro/translations/sv.json +0 -7
  225. homeassistant/components/thermopro/translations/tr.json +0 -7
  226. homeassistant/components/tibber/manifest.json +1 -1
  227. homeassistant/components/tibber/sensor.py +1 -1
  228. homeassistant/components/tilt_pi/translations/hu.json +21 -0
  229. homeassistant/components/toon/translations/hu.json +6 -0
  230. homeassistant/components/vegehub/translations/hu.json +11 -0
  231. homeassistant/components/vegehub/translations/it.json +40 -0
  232. homeassistant/components/vulcan/manifest.json +1 -1
  233. homeassistant/components/weheat/translations/hu.json +6 -0
  234. homeassistant/components/withings/translations/hu.json +6 -0
  235. homeassistant/components/wled/translations/fr.json +1 -0
  236. homeassistant/components/wmspro/cover.py +2 -0
  237. homeassistant/components/xbox/translations/hu.json +6 -0
  238. homeassistant/components/xiaomi_miio/translations/fr.json +24 -2
  239. homeassistant/components/xiaomi_miio/translations/hu.json +7 -0
  240. homeassistant/components/yale/translations/hu.json +6 -0
  241. homeassistant/components/yolink/translations/hu.json +6 -0
  242. homeassistant/components/zha/translations/fr.json +50 -0
  243. homeassistant/components/zha/translations/hu.json +6 -0
  244. homeassistant/components/zha/translations/it.json +50 -0
  245. homeassistant/components/zha/translations/sv.json +4 -0
  246. homeassistant/components/zwave_js/config_flow.py +81 -28
  247. homeassistant/components/zwave_js/strings.json +30 -10
  248. homeassistant/components/zwave_js/translations/cs.json +0 -12
  249. homeassistant/components/zwave_js/translations/de.json +26 -6
  250. homeassistant/components/zwave_js/translations/el.json +25 -4
  251. homeassistant/components/zwave_js/translations/en-GB.json +0 -12
  252. homeassistant/components/zwave_js/translations/en.json +24 -4
  253. homeassistant/components/zwave_js/translations/es.json +24 -4
  254. homeassistant/components/zwave_js/translations/et.json +25 -4
  255. homeassistant/components/zwave_js/translations/fi.json +0 -14
  256. homeassistant/components/zwave_js/translations/fr.json +6 -0
  257. homeassistant/components/zwave_js/translations/ga.json +0 -14
  258. homeassistant/components/zwave_js/translations/hu.json +32 -4
  259. homeassistant/components/zwave_js/translations/it.json +26 -0
  260. homeassistant/components/zwave_js/translations/lt.json +0 -12
  261. homeassistant/components/zwave_js/translations/mk.json +0 -5
  262. homeassistant/components/zwave_js/translations/pt.json +10 -13
  263. homeassistant/components/zwave_js/translations/ru.json +0 -8
  264. homeassistant/components/zwave_js/translations/sk.json +25 -4
  265. homeassistant/components/zwave_js/translations/sv.json +0 -12
  266. homeassistant/components/zwave_js/translations/tr.json +0 -12
  267. homeassistant/components/zwave_js/translations/zh-Hans.json +27 -6
  268. homeassistant/components/zwave_js/translations/zh-Hant.json +24 -4
  269. homeassistant/const.py +1 -1
  270. homeassistant/generated/integrations.json +1 -8
  271. homeassistant/package_constraints.txt +1 -1
  272. {homeassistant-2025.7.0b2.dist-info → homeassistant-2025.7.0b4.dist-info}/METADATA +1 -1
  273. {homeassistant-2025.7.0b2.dist-info → homeassistant-2025.7.0b4.dist-info}/RECORD +278 -273
  274. homeassistant/components/dweet/__init__.py +0 -79
  275. homeassistant/components/dweet/manifest.json +0 -10
  276. homeassistant/components/dweet/sensor.py +0 -124
  277. homeassistant/components/thermopro/translations/ga.json +0 -9
  278. homeassistant/components/thermopro/translations/mk.json +0 -9
  279. {homeassistant-2025.7.0b2.dist-info → homeassistant-2025.7.0b4.dist-info}/WHEEL +0 -0
  280. {homeassistant-2025.7.0b2.dist-info → homeassistant-2025.7.0b4.dist-info}/entry_points.txt +0 -0
  281. {homeassistant-2025.7.0b2.dist-info → homeassistant-2025.7.0b4.dist-info}/licenses/LICENSE.md +0 -0
  282. {homeassistant-2025.7.0b2.dist-info → homeassistant-2025.7.0b4.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  283. {homeassistant-2025.7.0b2.dist-info → homeassistant-2025.7.0b4.dist-info}/top_level.txt +0 -0
@@ -29,6 +29,12 @@
29
29
  "description": "Adja meg a c\u00edmet a Smappee helyi integr\u00e1ci\u00f3j\u00e1nak elind\u00edt\u00e1s\u00e1hoz"
30
30
  },
31
31
  "pick_implementation": {
32
+ "data": {
33
+ "implementation": "Alkalmaz\u00e1s-hiteles\u00edt\u0151 adatok"
34
+ },
35
+ "data_description": {
36
+ "implementation": "A hiteles\u00edt\u00e9shez haszn\u00e1land\u00f3 hiteles\u00edt\u0151 adatok"
37
+ },
32
38
  "title": "V\u00e1lasszon egy hiteles\u00edt\u00e9si m\u00f3dszert"
33
39
  },
34
40
  "zeroconf_confirm": {
@@ -20,6 +20,12 @@
20
20
  },
21
21
  "step": {
22
22
  "pick_implementation": {
23
+ "data": {
24
+ "implementation": "Alkalmaz\u00e1s-hiteles\u00edt\u0151 adatok"
25
+ },
26
+ "data_description": {
27
+ "implementation": "A hiteles\u00edt\u00e9shez haszn\u00e1land\u00f3 hiteles\u00edt\u0151 adatok"
28
+ },
23
29
  "title": "V\u00e1lasszon egy hiteles\u00edt\u00e9si m\u00f3dszert"
24
30
  },
25
31
  "reauth_confirm": {
@@ -79,8 +79,14 @@
79
79
  }
80
80
  },
81
81
  "exceptions": {
82
+ "entity_not_found": {
83
+ "message": "Entit\u00e9 {entity_id} non trouv\u00e9e."
84
+ },
82
85
  "invalid_sonos_playlist": {
83
86
  "message": "Impossible de trouver la liste de lecture Sonos\u00a0: {name}"
87
+ },
88
+ "speaker_not_found": {
89
+ "message": "{entity_id} n'est pas une enceinte Sonos connue."
84
90
  }
85
91
  },
86
92
  "issues": {
@@ -76,6 +76,17 @@
76
76
  }
77
77
  }
78
78
  },
79
+ "exceptions": {
80
+ "entity_not_found": {
81
+ "message": "Entit\u00e0 {entity_id} non trovata."
82
+ },
83
+ "speaker_not_found": {
84
+ "message": "{entity_id} non \u00e8 un altoparlante Sonos conosciuto."
85
+ },
86
+ "timeout_join": {
87
+ "message": "Tempo scaduto durante l'attesa che il lettore Sonos si unisca al gruppo {group_description}"
88
+ }
89
+ },
79
90
  "issues": {
80
91
  "subscriptions_failed": {
81
92
  "description": "Se si ricorre al polling, la funzionalit\u00e0 potrebbe essere limitata.\n\nIl dispositivo Sonos al {device_ip} non pu\u00f2 raggiungere Home assistant al {listener_address}.\n\nPer ulteriori informazioni su come risolvere questo problema, consultare la nostra [documentazione]({sub_fail_url}).",
@@ -18,6 +18,12 @@
18
18
  },
19
19
  "step": {
20
20
  "pick_implementation": {
21
+ "data": {
22
+ "implementation": "Alkalmaz\u00e1s-hiteles\u00edt\u0151 adatok"
23
+ },
24
+ "data_description": {
25
+ "implementation": "A hiteles\u00edt\u00e9shez haszn\u00e1land\u00f3 hiteles\u00edt\u0151 adatok"
26
+ },
21
27
  "title": "V\u00e1lasszon egy hiteles\u00edt\u00e9si m\u00f3dszert"
22
28
  },
23
29
  "reauth_confirm": {
@@ -55,6 +55,7 @@ from .const import (
55
55
  MAX_SEGMENTS,
56
56
  OUTPUT_FORMATS,
57
57
  OUTPUT_IDLE_TIMEOUT,
58
+ OUTPUT_STARTUP_TIMEOUT,
58
59
  RECORDER_PROVIDER,
59
60
  RTSP_TRANSPORTS,
60
61
  SEGMENT_DURATION_ADJUSTER,
@@ -363,11 +364,14 @@ class Stream:
363
364
  # without concern about self._outputs being modified from another thread.
364
365
  return MappingProxyType(self._outputs.copy())
365
366
 
366
- def add_provider(
367
- self, fmt: str, timeout: int = OUTPUT_IDLE_TIMEOUT
368
- ) -> StreamOutput:
367
+ def add_provider(self, fmt: str, timeout: int | None = None) -> StreamOutput:
369
368
  """Add provider output stream."""
370
369
  if not (provider := self._outputs.get(fmt)):
370
+ startup_timeout = OUTPUT_STARTUP_TIMEOUT
371
+ if timeout is None:
372
+ timeout = OUTPUT_IDLE_TIMEOUT
373
+ else:
374
+ startup_timeout = timeout
371
375
 
372
376
  async def idle_callback() -> None:
373
377
  if (
@@ -379,7 +383,7 @@ class Stream:
379
383
 
380
384
  provider = PROVIDERS[fmt](
381
385
  self.hass,
382
- IdleTimer(self.hass, timeout, idle_callback),
386
+ IdleTimer(self.hass, timeout, idle_callback, startup_timeout),
383
387
  self._stream_settings,
384
388
  self.dynamic_stream_settings,
385
389
  )
@@ -22,7 +22,8 @@ AUDIO_CODECS = {"aac", "mp3"}
22
22
 
23
23
  FORMAT_CONTENT_TYPE = {HLS_PROVIDER: "application/vnd.apple.mpegurl"}
24
24
 
25
- OUTPUT_IDLE_TIMEOUT = 300 # Idle timeout due to inactivity
25
+ OUTPUT_STARTUP_TIMEOUT = 60 # timeout due to no startup
26
+ OUTPUT_IDLE_TIMEOUT = 30 # Idle timeout due to inactivity
26
27
 
27
28
  NUM_PLAYLIST_SEGMENTS = 3 # Number of segments to use in HLS playlist
28
29
  MAX_SEGMENTS = 5 # Max number of segments to keep around
@@ -234,10 +234,12 @@ class IdleTimer:
234
234
  hass: HomeAssistant,
235
235
  timeout: int,
236
236
  idle_callback: Callable[[], Coroutine[Any, Any, None]],
237
+ startup_timeout: int | None = None,
237
238
  ) -> None:
238
239
  """Initialize IdleTimer."""
239
240
  self._hass = hass
240
241
  self._timeout = timeout
242
+ self._startup_timeout = startup_timeout or timeout
241
243
  self._callback = idle_callback
242
244
  self._unsub: CALLBACK_TYPE | None = None
243
245
  self.idle = False
@@ -246,7 +248,7 @@ class IdleTimer:
246
248
  """Start the idle timer if not already started."""
247
249
  self.idle = False
248
250
  if self._unsub is None:
249
- self._unsub = async_call_later(self._hass, self._timeout, self.fire)
251
+ self._unsub = async_call_later(self._hass, self._startup_timeout, self.fire)
250
252
 
251
253
  def awake(self) -> None:
252
254
  """Keep the idle time alive by resetting the timeout."""
@@ -101,8 +101,10 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
+ "description": "\u039e\u03b5\u03ba\u03bb\u03b5\u03b9\u03b4\u03ce\u03bd\u03b5\u03b9 \u03c4\u03b7\u03bd \u03c0\u03cc\u03c1\u03c4\u03b1 \u03c4\u03bf\u03c5 \u03bf\u03b4\u03b7\u03b3\u03bf\u03cd, \u03cc\u03bb\u03b5\u03c2 \u03c4\u03b9\u03c2 \u03c0\u03cc\u03c1\u03c4\u03b5\u03c2 \u03ae \u03c4\u03b7\u03bd \u03c0\u03cc\u03c1\u03c4\u03b1 \u03c4\u03bf\u03c5 \u03c7\u03ce\u03c1\u03bf\u03c5 \u03b1\u03c0\u03bf\u03c3\u03ba\u03b5\u03c5\u03ce\u03bd.",
104
105
  "fields": {
105
106
  "door": {
107
+ "description": "\u0397 \u03c3\u03c5\u03b3\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03b7 \u03c0\u03cc\u03c1\u03c4\u03b1 (\u03b5\u03c2) \u03b3\u03b9\u03b1 \u03be\u03b5\u03ba\u03bb\u03b5\u03af\u03b4\u03c9\u03bc\u03b1.",
106
108
  "name": "\u03a0\u03cc\u03c1\u03c4\u03b1"
107
109
  }
108
110
  },
@@ -101,8 +101,10 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
+ "description": "Unlocks the driver door, all doors, or the tailgate.",
104
105
  "fields": {
105
106
  "door": {
107
+ "description": "The specific door(s) to unlock.",
106
108
  "name": "Door"
107
109
  }
108
110
  },
@@ -101,8 +101,10 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
+ "description": "Desbloquea la puerta del conductor, todas las puertas o el port\u00f3n trasero.",
104
105
  "fields": {
105
106
  "door": {
107
+ "description": "La(s) puerta(s) espec\u00edfica(s) a desbloquear.",
106
108
  "name": "Puerta"
107
109
  }
108
110
  },
@@ -101,8 +101,10 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
+ "description": "Avab juhiukse, k\u00f5ik uksed v\u00f5i tagaluugi.",
104
105
  "fields": {
105
106
  "door": {
107
+ "description": "Millised uksed avada.",
106
108
  "name": "Uks"
107
109
  }
108
110
  },
@@ -101,8 +101,10 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
+ "description": "Desbloqueia a porta do condutor, todas as portas ou a porta da bagageira.",
104
105
  "fields": {
105
106
  "door": {
107
+ "description": "A(s) porta(s) espec\u00edfica(s) a destrancar.",
106
108
  "name": "Porta"
107
109
  }
108
110
  },
@@ -101,8 +101,10 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
+ "description": "Odomkne dvere vodi\u010da, v\u0161etky dvere alebo zadn\u00e9 dvere.",
104
105
  "fields": {
105
106
  "door": {
107
+ "description": "Konkr\u00e9tne dvere, ktor\u00e9 sa maj\u00fa odomkn\u00fa\u0165.",
106
108
  "name": "Dvere"
107
109
  }
108
110
  },
@@ -101,8 +101,10 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
+ "description": "\u89e3\u9501\u9a7e\u9a76\u5458\u8f66\u95e8\u3001\u6240\u6709\u8f66\u95e8\u6216\u5c3e\u95e8\u3002",
104
105
  "fields": {
105
106
  "door": {
107
+ "description": "\u8981\u89e3\u9501\u7684\u7279\u5b9a\u95e8\u3002",
106
108
  "name": "\u95e8"
107
109
  }
108
110
  },
@@ -101,8 +101,10 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
+ "description": "\u89e3\u9396\u99d5\u99db\u5ea7\u8eca\u9580\u3001\u6240\u6709\u8eca\u9580\u6216\u5c3e\u9580\u3002",
104
105
  "fields": {
105
106
  "door": {
107
+ "description": "\u8981\u89e3\u9396\u7684\u9580\u3002",
106
108
  "name": "\u8eca\u9580"
107
109
  }
108
110
  },
@@ -2,15 +2,54 @@
2
2
  "config": {
3
3
  "abort": {
4
4
  "already_configured": "\u0397 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c3\u03af\u03b1 \u03ad\u03c7\u03b5\u03b9 \u03ae\u03b4\u03b7 \u03b4\u03b9\u03b1\u03bc\u03bf\u03c1\u03c6\u03c9\u03b8\u03b5\u03af",
5
- "bad_config": "\u03a4\u03bf \u03b1\u03af\u03c4\u03b7\u03bc\u03b1 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5 \u03bb\u03cc\u03b3\u03c9 \u03ba\u03b1\u03ba\u03ae\u03c2 \u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7\u03c2: \u0395\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c4\u03bf [stationboard]({stationboard_url}) \u03b3\u03b9\u03b1 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c5\u03c2 \u03c3\u03c4\u03b1\u03b8\u03bc\u03bf\u03cd\u03c2."
5
+ "bad_config": "\u03a4\u03bf \u03b1\u03af\u03c4\u03b7\u03bc\u03b1 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5 \u03bb\u03cc\u03b3\u03c9 \u03ba\u03b1\u03ba\u03ae\u03c2 \u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7\u03c2: \u0395\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c4\u03bf [stationboard]({stationboard_url}) \u03b3\u03b9\u03b1 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c5\u03c2 \u03c3\u03c4\u03b1\u03b8\u03bc\u03bf\u03cd\u03c2.",
6
+ "cannot_connect": "\u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5 \u03c4\u03bf\u03bd server",
7
+ "unknown": "\u0395\u03bd\u03b1 \u03ac\u03b3\u03bd\u03c9\u03c3\u03c4\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03c0\u03c1\u03bf\u03ad\u03ba\u03c5\u03c8\u03b5 \u03b1\u03c0\u03cc \u03c4\u03bf python-opendata-transport"
6
8
  },
7
9
  "error": {
8
10
  "bad_config": "\u03a4\u03bf \u03b1\u03af\u03c4\u03b7\u03bc\u03b1 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5 \u03bb\u03cc\u03b3\u03c9 \u03ba\u03b1\u03ba\u03ae\u03c2 \u03b4\u03b9\u03b1\u03bc\u03cc\u03c1\u03c6\u03c9\u03c3\u03b7\u03c2: \u0395\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c4\u03bf\u03bd \u03c0\u03af\u03bd\u03b1\u03ba\u03b1 \u03c3\u03c4\u03b1\u03b8\u03bc\u03bf\u03cd \u03c0\u03bf\u03c5 \u03c3\u03c5\u03bd\u03b4\u03ad\u03b5\u03c4\u03b1\u03b9 \u03c0\u03b1\u03c1\u03b1\u03c0\u03ac\u03bd\u03c9 \u03b5\u03ac\u03bd \u03c4\u03b1 \u03bf\u03bd\u03cc\u03bc\u03b1\u03c4\u03b1 \u03c4\u03c9\u03bd \u03c3\u03c4\u03b1\u03b8\u03bc\u03ce\u03bd \u03c3\u03b1\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b1",
9
- "too_many_via_stations": "\u03a0\u03ac\u03c1\u03b1 \u03c0\u03bf\u03bb\u03bb\u03bf\u03af \u03b5\u03bd\u03b4\u03b9\u03ac\u03bc\u03b5\u03c3\u03bf\u03b9 \u03c3\u03c4\u03b1\u03b8\u03bc\u03bf\u03af, \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03bf\u03bd\u03c4\u03b1\u03b9 \u03bc\u03cc\u03bd\u03bf \u03ad\u03c9\u03c2 5 \u03b5\u03bd\u03b4\u03b9\u03ac\u03bc\u03b5\u03c3\u03bf\u03b9 \u03c3\u03c4\u03b1\u03b8\u03bc\u03bf\u03af \u03b1\u03bd\u03ac \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7."
11
+ "cannot_connect": "\u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03bc\u03b5 \u03c4\u03bf\u03bd server",
12
+ "too_many_via_stations": "\u03a0\u03ac\u03c1\u03b1 \u03c0\u03bf\u03bb\u03bb\u03bf\u03af \u03b5\u03bd\u03b4\u03b9\u03ac\u03bc\u03b5\u03c3\u03bf\u03b9 \u03c3\u03c4\u03b1\u03b8\u03bc\u03bf\u03af, \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03bf\u03bd\u03c4\u03b1\u03b9 \u03bc\u03cc\u03bd\u03bf \u03ad\u03c9\u03c2 5 \u03b5\u03bd\u03b4\u03b9\u03ac\u03bc\u03b5\u03c3\u03bf\u03b9 \u03c3\u03c4\u03b1\u03b8\u03bc\u03bf\u03af \u03b1\u03bd\u03ac \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7.",
13
+ "unknown": "\u0395\u03bd\u03b1 \u03ac\u03b3\u03bd\u03c9\u03c3\u03c4\u03bf \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03c0\u03c1\u03bf\u03ad\u03ba\u03c5\u03c8\u03b5 \u03b1\u03c0\u03cc \u03c4\u03bf python-opendata-transport"
10
14
  },
11
15
  "step": {
16
+ "time_fixed": {
17
+ "data": {
18
+ "time_fixed": "\u03a9\u03c1\u03b1 \u03c4\u03b7\u03c2 \u03b7\u03bc\u03ad\u03c1\u03b1\u03c2"
19
+ },
20
+ "data_description": {
21
+ "time_fixed": "\u0397 \u03ce\u03c1\u03b1 \u03c4\u03b7\u03c2 \u03b7\u03bc\u03ad\u03c1\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03b7 \u03b1\u03bd\u03c4\u03b1\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7"
22
+ },
23
+ "description": "\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03c4\u03b7\u03bd \u03ba\u03b1\u03c4\u03ac\u03bb\u03bb\u03b7\u03bb\u03b7 \u03ce\u03c1\u03b1 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03b1\u03bd\u03c4\u03b1\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7 (\u03c0.\u03c7. 7:12:00 \u03c0.\u03bc. \u03ba\u03ac\u03b8\u03b5 \u03c0\u03c1\u03c9\u03af).",
24
+ "title": "\u0395\u03bb\u03b2\u03b5\u03c4\u03b9\u03ba\u03ad\u03c2 \u0394\u03b7\u03bc\u03cc\u03c3\u03b9\u03b5\u03c2 \u03a3\u03c5\u03b3\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b5\u03c2"
25
+ },
26
+ "time_offset": {
27
+ "data": {
28
+ "time_offset": "\u039c\u03b5\u03c4\u03b1\u03c4\u03cc\u03c0\u03b9\u03c3\u03b7 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c5"
29
+ },
30
+ "data_description": {
31
+ "time_offset": "\u0397 \u03c7\u03c1\u03bf\u03bd\u03b9\u03ba\u03ae \u03bc\u03b5\u03c4\u03b1\u03c4\u03cc\u03c0\u03b9\u03c3\u03b7 \u03c0\u03bf\u03c5 \u03c0\u03c1\u03bf\u03c3\u03c4\u03af\u03b8\u03b5\u03c4\u03b1\u03b9 \u03c3\u03c4\u03b7 \u03bd\u03c9\u03c1\u03af\u03c4\u03b5\u03c1\u03b7 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b1\u03bd\u03c4\u03b1\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7"
32
+ },
33
+ "description": "\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03c4\u03b7 \u03c3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ae \u03bc\u03b5\u03c4\u03b1\u03c4\u03cc\u03c0\u03b9\u03c3\u03b7 \u03c0\u03bf\u03c5 \u03b8\u03b1 \u03c0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03b5\u03c4\u03b5 \u03c3\u03c4\u03b7 \u03bd\u03c9\u03c1\u03af\u03c4\u03b5\u03c1\u03b7 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b1\u03bd\u03c4\u03b1\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7 (\u03c0.\u03c7. \u03c0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03c4\u03b5 \u03c4\u03b7 \u03bc\u03b5\u03c4\u03b1\u03c4\u03cc\u03c0\u03b9\u03c3\u03b7 +00:05:00, \u03bb\u03b1\u03bc\u03b2\u03ac\u03bd\u03bf\u03bd\u03c4\u03b1\u03c2 \u03c5\u03c0\u03cc\u03c8\u03b7 \u03c4\u03bf \u03c7\u03c1\u03cc\u03bd\u03bf \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c6\u03c4\u03ac\u03c3\u03b5\u03c4\u03b5 \u03c3\u03c4\u03bf\u03bd \u03c3\u03c4\u03b1\u03b8\u03bc\u03cc \u03bc\u03b5 \u03c4\u03b1 \u03c0\u03cc\u03b4\u03b9\u03b1)",
34
+ "title": "\u0395\u03bb\u03b2\u03b5\u03c4\u03b9\u03ba\u03ad\u03c2 \u0394\u03b7\u03bc\u03cc\u03c3\u03b9\u03b5\u03c2 \u03a3\u03c5\u03b3\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b5\u03c2"
35
+ },
12
36
  "user": {
13
- "description": "\u0394\u03ce\u03c3\u03c4\u03b5 \u03c4\u03bf\u03bd \u03c3\u03c4\u03b1\u03b8\u03bc\u03cc \u03b1\u03c1\u03c7\u03ae\u03c2 \u03ba\u03b1\u03b9 \u03c4\u03ad\u03bb\u03bf\u03c5\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03ae \u03c3\u03b1\u03c2, \u03ba\u03b1\u03b9 \u03c0\u03c1\u03bf\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03ac \u03ad\u03c9\u03c2 \u03ba\u03b1\u03b9 5 \u03b5\u03bd\u03b4\u03b9\u03ac\u03bc\u03b5\u03c3\u03bf\u03c5\u03c2 \u03c3\u03c4\u03b1\u03b8\u03bc\u03bf\u03cd\u03c2.\n\n\u0395\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c4\u03bf [stationboard]({stationboard_url}) \u03b3\u03b9\u03b1 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c5\u03c2 \u03c3\u03c4\u03b1\u03b8\u03bc\u03bf\u03cd\u03c2."
37
+ "data": {
38
+ "from": "\u03a3\u03c4\u03b1\u03b8\u03bc\u03cc\u03c2 \u03b5\u03ba\u03ba\u03af\u03bd\u03b7\u03c3\u03b7\u03c2",
39
+ "time_mode": "\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03bc\u03b9\u03b1 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c5",
40
+ "time_station": "\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03c4\u03bf\u03bd \u03b1\u03bd\u03c4\u03af\u03c3\u03c4\u03bf\u03b9\u03c7\u03bf \u03c3\u03c4\u03b1\u03b8\u03bc\u03cc",
41
+ "to": "\u03a4\u03b5\u03bb\u03b9\u03ba\u03cc\u03c2 \u03c3\u03c4\u03b1\u03b8\u03bc\u03cc\u03c2",
42
+ "via": "\u0395\u03bd\u03b4\u03b9\u03ac\u03bc\u03b5\u03c3\u03bf\u03b9 \u03c3\u03c4\u03b1\u03b8\u03bc\u03bf\u03af"
43
+ },
44
+ "data_description": {
45
+ "from": "\u039f \u03c3\u03c4\u03b1\u03b8\u03bc\u03cc\u03c2 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u03bf\u03c0\u03bf\u03af\u03bf \u03be\u03b5\u03ba\u03b9\u03bd\u03ac \u03b7 \u03b1\u03bd\u03c4\u03b1\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7",
46
+ "time_mode": "\u0397 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \"\u03a7\u03c1\u03cc\u03bd\u03bf\u03c2\" \u03c3\u03b1\u03c2 \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b1\u03bb\u03bb\u03ac\u03be\u03b5\u03c4\u03b5 \u03c4\u03bf \u03c7\u03c1\u03cc\u03bd\u03bf \u03b1\u03bd\u03b1\u03c7\u03ce\u03c1\u03b7\u03c3\u03b7\u03c2 \u03ba\u03b1\u03b9 \u03bd\u03b1 \u03c4\u03bf\u03bd \u03ba\u03b1\u03b8\u03bf\u03c1\u03af\u03c3\u03b5\u03c4\u03b5 \u03c3\u03b5 \u03bc\u03b9\u03b1 \u03c3\u03c5\u03b3\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03b7 \u03ce\u03c1\u03b1 (\u03c0.\u03c7. 7:12:00 \u03c0.\u03bc. \u03ba\u03ac\u03b8\u03b5 \u03c0\u03c1\u03c9\u03af) \u03ae \u03bd\u03b1 \u03c0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03b5\u03c4\u03b5 \u03bc\u03b9\u03b1 \u03bc\u03b5\u03c4\u03b1\u03c4\u03cc\u03c0\u03b9\u03c3\u03b7 (\u03c0.\u03c7. +00:05:00 \u03bb\u03b1\u03bc\u03b2\u03ac\u03bd\u03bf\u03bd\u03c4\u03b1\u03c2 \u03c5\u03c0\u03cc\u03c8\u03b7 \u03c4\u03bf \u03c7\u03c1\u03cc\u03bd\u03bf \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c0\u03b5\u03c1\u03c0\u03b1\u03c4\u03ae\u03c3\u03b5\u03c4\u03b5 \u03bc\u03ad\u03c7\u03c1\u03b9 \u03c4\u03bf\u03bd \u03c3\u03c4\u03b1\u03b8\u03bc\u03cc).",
47
+ "time_station": "\u03a3\u03c5\u03bd\u03ae\u03b8\u03c9\u03c2 \u03c0\u03b1\u03c1\u03b1\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03b5\u03af\u03c4\u03b1\u03b9 \u03b7 \u03ce\u03c1\u03b1 \u03b1\u03bd\u03b1\u03c7\u03ce\u03c1\u03b7\u03c3\u03b7\u03c2 \u03bc\u03b9\u03b1\u03c2 \u03b1\u03bd\u03c4\u03b1\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7\u03c2 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b1\u03bd\u03b1\u03c7\u03ce\u03c1\u03b7\u03c3\u03ae \u03c4\u03b7\u03c2 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u03c3\u03c4\u03b1\u03b8\u03bc\u03cc \u03b5\u03ba\u03ba\u03af\u03bd\u03b7\u03c3\u03b7\u03c2. \u0395\u03bd\u03b1\u03bb\u03bb\u03b1\u03ba\u03c4\u03b9\u03ba\u03ac, \u03c0\u03b1\u03c1\u03b1\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03b5\u03af\u03c4\u03b5 \u03c4\u03b7\u03bd \u03ce\u03c1\u03b1 \u03ac\u03c6\u03b9\u03be\u03b7\u03c2 \u03c4\u03b7\u03c2 \u03b1\u03bd\u03c4\u03b1\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7\u03c2 \u03c3\u03c4\u03bf\u03bd \u03c3\u03c4\u03b1\u03b8\u03bc\u03cc \u03c4\u03b5\u03c1\u03bc\u03b1\u03c4\u03b9\u03c3\u03bc\u03bf\u03cd \u03c4\u03b7\u03c2.",
48
+ "to": "\u039f \u03c3\u03c4\u03b1\u03b8\u03bc\u03cc\u03c2 \u03c3\u03c4\u03bf\u03bd \u03bf\u03c0\u03bf\u03af\u03bf \u03c4\u03b5\u03bb\u03b5\u03b9\u03ce\u03bd\u03b5\u03b9 \u03b7 \u03b1\u03bd\u03c4\u03b1\u03c0\u03cc\u03ba\u03c1\u03b9\u03c3\u03b7",
49
+ "via": "\u039b\u03af\u03c3\u03c4\u03b1 \u03bc\u03b5 \u03ad\u03c9\u03c2 \u03ba\u03b1\u03b9 5 \u03c3\u03c4\u03b1\u03b8\u03bc\u03bf\u03cd\u03c2 \u03b1\u03c0\u03cc \u03c4\u03bf\u03c5\u03c2 \u03bf\u03c0\u03bf\u03af\u03bf\u03c5\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03c0\u03b5\u03c1\u03ac\u03c3\u03b5\u03b9 \u03b7 \u03b4\u03b9\u03b1\u03b4\u03c1\u03bf\u03bc\u03ae"
50
+ },
51
+ "description": "\u0394\u03ce\u03c3\u03c4\u03b5 \u03c4\u03bf\u03bd \u03c3\u03c4\u03b1\u03b8\u03bc\u03cc \u03b1\u03c1\u03c7\u03ae\u03c2 \u03ba\u03b1\u03b9 \u03c4\u03ad\u03bb\u03bf\u03c5\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03ae \u03c3\u03b1\u03c2, \u03ba\u03b1\u03b9 \u03c0\u03c1\u03bf\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03ac \u03ad\u03c9\u03c2 \u03ba\u03b1\u03b9 5 \u03b5\u03bd\u03b4\u03b9\u03ac\u03bc\u03b5\u03c3\u03bf\u03c5\u03c2 \u03c3\u03c4\u03b1\u03b8\u03bc\u03bf\u03cd\u03c2.\n\n\u0395\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c4\u03bf [stationboard]({stationboard_url}) \u03b3\u03b9\u03b1 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf\u03c5\u03c2 \u03c3\u03c4\u03b1\u03b8\u03bc\u03bf\u03cd\u03c2.",
52
+ "title": "\u0395\u03bb\u03b2\u03b5\u03c4\u03b9\u03ba\u03ad\u03c2 \u0394\u03b7\u03bc\u03cc\u03c3\u03b9\u03b5\u03c2 \u03a3\u03c5\u03b3\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b5\u03c2"
14
53
  }
15
54
  }
16
55
  },
@@ -47,7 +86,7 @@
47
86
  "message": "\u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03c3\u03c4\u03bf\u03bd server.\n{error}"
48
87
  },
49
88
  "config_entry_not_found": {
50
- "message": "\u0397 \u03c5\u03c0\u03cc\u03c3\u03c4\u03b1\u03c3\u03b7 \u03b5\u03bd\u03c3\u03c9\u03bc\u03ac\u03c4\u03c9\u03c3\u03b7\u03c2 \u03b5\u03bb\u03b2\u03b5\u03c4\u03b9\u03ba\u03ce\u03bd \u03b4\u03b7\u03bc\u03cc\u03c3\u03b9\u03c9\u03bd \u03c3\u03c5\u03b3\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03b9\u03ce\u03bd \" {target} \" \u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5."
89
+ "message": "\u0397 \u03c5\u03c0\u03cc\u03c3\u03c4\u03b1\u03c3\u03b7 \u03b5\u03bd\u03c3\u03c9\u03bc\u03ac\u03c4\u03c9\u03c3\u03b7\u03c2 \u0395\u03bb\u03b2\u03b5\u03c4\u03b9\u03ba\u03ce\u03bd \u0394\u03b7\u03bc\u03cc\u03c3\u03b9\u03c9\u03bd \u03a3\u03c5\u03b3\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03b9\u03ce\u03bd \"{target}\" \u03b4\u03b5\u03bd \u03b2\u03c1\u03ad\u03b8\u03b7\u03ba\u03b5."
51
90
  },
52
91
  "invalid_data": {
53
92
  "message": "\u0397 \u03c1\u03cd\u03b8\u03bc\u03b9\u03c3\u03b7 \u03b1\u03c0\u03ad\u03c4\u03c5\u03c7\u03b5 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03ba\u03b1\u03c4\u03b1\u03c7\u03ce\u03c1\u03b9\u03c3\u03b7 {config_title} \u03bc\u03b5 \u03bc\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1, \u03b5\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c3\u03c4\u03bf [stationboard]({stationboard_url}) \u03b5\u03ac\u03bd \u03c4\u03b1 \u03bf\u03bd\u03cc\u03bc\u03b1\u03c4\u03b1 \u03c4\u03c9\u03bd \u03c3\u03c4\u03b1\u03b8\u03bc\u03ce\u03bd \u03c3\u03b1\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ad\u03b3\u03ba\u03c5\u03c1\u03b1.\n{error}"
@@ -59,12 +98,27 @@
59
98
  "message": "\u03a7\u03c1\u03bf\u03bd\u03b9\u03ba\u03cc \u03cc\u03c1\u03b9\u03bf \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03b5\u03af\u03c3\u03bf\u03b4\u03bf {config_title}.\n{error}"
60
99
  }
61
100
  },
101
+ "selector": {
102
+ "time_mode": {
103
+ "options": {
104
+ "fixed": "\u03a3\u03b5 \u03bc\u03b9\u03b1 \u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03b7 \u03ce\u03c1\u03b1 \u03c4\u03b7\u03c2 \u03b7\u03bc\u03ad\u03c1\u03b1\u03c2",
105
+ "now": "\u03a4\u03ce\u03c1\u03b1",
106
+ "offset": "\u03a3\u03b5 \u03bc\u03b9\u03b1 \u03bc\u03b5\u03c4\u03b1\u03c4\u03cc\u03c0\u03b9\u03c3\u03b7 \u03b1\u03c0\u03cc \u03c4\u03ce\u03c1\u03b1"
107
+ }
108
+ },
109
+ "time_station": {
110
+ "options": {
111
+ "arrival": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03ce\u03c1\u03b1\u03c2 \u03ac\u03c6\u03b9\u03be\u03b7\u03c2 \u03c3\u03c4\u03bf\u03bd \u03c4\u03b5\u03bb\u03b9\u03ba\u03cc \u03c3\u03c4\u03b1\u03b8\u03bc\u03cc",
112
+ "departure": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03ce\u03c1\u03b1\u03c2 \u03b1\u03bd\u03b1\u03c7\u03ce\u03c1\u03b7\u03c3\u03b7\u03c2 \u03b1\u03c0\u03cc \u03c4\u03bf\u03bd \u03c3\u03c4\u03b1\u03b8\u03bc\u03cc \u03b5\u03ba\u03ba\u03af\u03bd\u03b7\u03c3\u03b7\u03c2"
113
+ }
114
+ }
115
+ },
62
116
  "services": {
63
117
  "fetch_connections": {
64
- "description": "\u039b\u03b1\u03bc\u03b2\u03ac\u03bd\u03b5\u03b9 \u03bc\u03b9\u03b1 \u03bb\u03af\u03c3\u03c4\u03b1 \u03bc\u03b5 \u03b1\u03bd\u03c4\u03b1\u03c0\u03bf\u03ba\u03c1\u03af\u03c3\u03b5\u03b9\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b9\u03c2 \u03b5\u03bb\u03b2\u03b5\u03c4\u03b9\u03ba\u03ad\u03c2 \u03b4\u03b7\u03bc\u03cc\u03c3\u03b9\u03b5\u03c2 \u03c3\u03c5\u03b3\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b5\u03c2.",
118
+ "description": "\u039b\u03b1\u03bc\u03b2\u03ac\u03bd\u03b5\u03b9 \u03bc\u03b9\u03b1 \u03bb\u03af\u03c3\u03c4\u03b1 \u03bc\u03b5 \u03b1\u03bd\u03c4\u03b1\u03c0\u03bf\u03ba\u03c1\u03af\u03c3\u03b5\u03b9\u03c2 \u03b1\u03c0\u03cc \u03c4\u03b9\u03c2 \u0395\u03bb\u03b2\u03b5\u03c4\u03b9\u03ba\u03ad\u03c2 \u0394\u03b7\u03bc\u03cc\u03c3\u03b9\u03b5\u03c2 \u03a3\u03c5\u03b3\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b5\u03c2.",
65
119
  "fields": {
66
120
  "config_entry_id": {
67
- "description": "\u03a5\u03c0\u03cc\u03c3\u03c4\u03b1\u03c3\u03b7 \u03b5\u03bb\u03b2\u03b5\u03c4\u03b9\u03ba\u03ae\u03c2 \u03b4\u03b7\u03bc\u03cc\u03c3\u03b9\u03b1\u03c2 \u03c3\u03c5\u03b3\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b1\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03bb\u03ae\u03c8\u03b7 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03b5\u03c9\u03bd.",
121
+ "description": "\u03a5\u03c0\u03cc\u03c3\u03c4\u03b1\u03c3\u03b7 \u0395\u03bb\u03b2\u03b5\u03c4\u03b9\u03ba\u03ce\u03bd \u0394\u03b7\u03bc\u03cc\u03c3\u03b9\u03c9\u03bd \u03a3\u03c5\u03b3\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03b9\u03ce\u03bd \u03b3\u03b9\u03b1 \u03c4\u03b7 \u03bb\u03ae\u03c8\u03b7 \u03b1\u03bd\u03c4\u03b1\u03c0\u03bf\u03ba\u03c1\u03af\u03c3\u03b5\u03c9\u03bd.",
68
122
  "name": "\u03a5\u03c0\u03cc\u03c3\u03c4\u03b1\u03c3\u03b7"
69
123
  },
70
124
  "limit": {
@@ -135,6 +135,18 @@
135
135
  }
136
136
  },
137
137
  "humidifier": {
138
+ "evaporative_humidifier": {
139
+ "state_attributes": {
140
+ "mode": {
141
+ "state": {
142
+ "auto": "Automatikus",
143
+ "high": "Magas",
144
+ "low": "Alacsony",
145
+ "medium": "K\u00f6zepes"
146
+ }
147
+ }
148
+ }
149
+ },
138
150
  "humidifier": {
139
151
  "state_attributes": {
140
152
  "last_run_success": {
@@ -174,6 +186,13 @@
174
186
  "light_level": {
175
187
  "name": "F\u00e9nyer\u0151 szint"
176
188
  },
189
+ "water_level": {
190
+ "state": {
191
+ "high": "Magas",
192
+ "low": "Alacsony",
193
+ "medium": "K\u00f6zepes"
194
+ }
195
+ },
177
196
  "wifi_signal": {
178
197
  "name": "Wi-Fi jel"
179
198
  }
@@ -70,6 +70,21 @@
70
70
  }
71
71
  },
72
72
  "humidifier": {
73
+ "evaporative_humidifier": {
74
+ "state_attributes": {
75
+ "mode": {
76
+ "state": {
77
+ "drying_filter": "Filtro essiccatore",
78
+ "high": "Alto/a",
79
+ "low": "Basso/a",
80
+ "medium": "Medio/a",
81
+ "quiet": "Silenzioso",
82
+ "sleep": "Sonno",
83
+ "target_humidity": "Umidit\u00e0 desiderata"
84
+ }
85
+ }
86
+ }
87
+ },
73
88
  "humidifier": {
74
89
  "state_attributes": {
75
90
  "last_run_success": {
@@ -81,6 +96,35 @@
81
96
  }
82
97
  }
83
98
  },
99
+ "light": {
100
+ "light": {
101
+ "state_attributes": {
102
+ "effect": {
103
+ "state": {
104
+ "autumn": "Autunno",
105
+ "breathing": "Respirazione",
106
+ "christmas": "Natalizio",
107
+ "colorful": "Colorato",
108
+ "cool": "Freddo",
109
+ "fade": "Dissolvenza",
110
+ "flashing": "Lampeggiamento",
111
+ "flickering": "Sfarfallio",
112
+ "flow": "Flusso",
113
+ "forest": "Foresta",
114
+ "halloween": "Halloween",
115
+ "modern": "Moderno",
116
+ "ocean": "Oceano",
117
+ "relax": "Relax",
118
+ "rose": "Risveglio",
119
+ "smooth": "Diffusa",
120
+ "strobe": "Luce stroboscopica",
121
+ "sunset": "Tramonto",
122
+ "vitality": "Vitalit\u00e0"
123
+ }
124
+ }
125
+ }
126
+ }
127
+ },
84
128
  "lock": {
85
129
  "lock": {
86
130
  "state_attributes": {
@@ -100,6 +144,15 @@
100
144
  "light_level": {
101
145
  "name": "Livello di luce"
102
146
  },
147
+ "water_level": {
148
+ "name": "Livello dell'acqua",
149
+ "state": {
150
+ "empty": "Vuoto",
151
+ "high": "Alto/a",
152
+ "low": "Basso/a",
153
+ "medium": "Medio/a"
154
+ }
155
+ },
103
156
  "wifi_signal": {
104
157
  "name": "Segnale Wi Fi"
105
158
  }
@@ -153,7 +153,12 @@ async def make_device_data(
153
153
  )
154
154
  devices_data.vacuums.append((device, coordinator))
155
155
 
156
- if isinstance(device, Device) and device.device_type.startswith("Smart Lock"):
156
+ if isinstance(device, Device) and device.device_type in [
157
+ "Smart Lock",
158
+ "Smart Lock Lite",
159
+ "Smart Lock Pro",
160
+ "Smart Lock Ultra",
161
+ ]:
157
162
  coordinator = await coordinator_for_device(
158
163
  hass, entry, api, device, coordinators_by_id
159
164
  )
@@ -48,10 +48,18 @@ BINARY_SENSOR_DESCRIPTIONS_BY_DEVICE_TYPES = {
48
48
  CALIBRATION_DESCRIPTION,
49
49
  DOOR_OPEN_DESCRIPTION,
50
50
  ),
51
+ "Smart Lock Lite": (
52
+ CALIBRATION_DESCRIPTION,
53
+ DOOR_OPEN_DESCRIPTION,
54
+ ),
51
55
  "Smart Lock Pro": (
52
56
  CALIBRATION_DESCRIPTION,
53
57
  DOOR_OPEN_DESCRIPTION,
54
58
  ),
59
+ "Smart Lock Ultra": (
60
+ CALIBRATION_DESCRIPTION,
61
+ DOOR_OPEN_DESCRIPTION,
62
+ ),
55
63
  }
56
64
 
57
65
 
@@ -69,7 +77,6 @@ async def async_setup_entry(
69
77
  for description in BINARY_SENSOR_DESCRIPTIONS_BY_DEVICE_TYPES[
70
78
  device.device_type
71
79
  ]
72
- if device.device_type in BINARY_SENSOR_DESCRIPTIONS_BY_DEVICE_TYPES
73
80
  )
74
81
 
75
82
 
@@ -134,8 +134,10 @@ SENSOR_DESCRIPTIONS_BY_DEVICE_TYPES = {
134
134
  BATTERY_DESCRIPTION,
135
135
  CO2_DESCRIPTION,
136
136
  ),
137
- "Smart Lock Pro": (BATTERY_DESCRIPTION,),
138
137
  "Smart Lock": (BATTERY_DESCRIPTION,),
138
+ "Smart Lock Lite": (BATTERY_DESCRIPTION,),
139
+ "Smart Lock Pro": (BATTERY_DESCRIPTION,),
140
+ "Smart Lock Ultra": (BATTERY_DESCRIPTION,),
139
141
  }
140
142
 
141
143
 
@@ -151,7 +153,6 @@ async def async_setup_entry(
151
153
  SwitchBotCloudSensor(data.api, device, coordinator, description)
152
154
  for device, coordinator in data.devices.sensors
153
155
  for description in SENSOR_DESCRIPTIONS_BY_DEVICE_TYPES[device.device_type]
154
- if device.device_type in SENSOR_DESCRIPTIONS_BY_DEVICE_TYPES
155
156
  )
156
157
 
157
158
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "domain": "telegram_bot",
3
3
  "name": "Telegram bot",
4
- "codeowners": [],
4
+ "codeowners": ["@hanwg"],
5
5
  "config_flow": true,
6
6
  "dependencies": ["http"],
7
7
  "documentation": "https://www.home-assistant.io/integrations/telegram_bot",
@@ -34,12 +34,14 @@
34
34
  },
35
35
  "user": {
36
36
  "data": {
37
+ "api_key": "Jeton d\u2019API",
37
38
  "platform": "Plateforme"
38
39
  },
39
40
  "data_description": {
40
41
  "api_key": "Le jeton d'API de votre bot.",
41
42
  "platform": "Implantation du bot Telegram"
42
- }
43
+ },
44
+ "description": "Pour cr\u00e9er un bot Telegram, suivez ces \u00e9tapes\u00a0:\n\n1. Ouvrez Telegram et d\u00e9marrez une discussion avec [{botfather_username}]({botfather_url}).\n1. Envoyez la commande `/newbot`.\n1. Suivez les instructions pour cr\u00e9er votre bot et obtenir votre jeton API."
43
45
  },
44
46
  "webhooks": {
45
47
  "data": {
@@ -34,6 +34,7 @@
34
34
  },
35
35
  "user": {
36
36
  "data": {
37
+ "api_key": "API Token",
37
38
  "platform": "Platform"
38
39
  },
39
40
  "data_description": {
@@ -1,10 +1,34 @@
1
1
  {
2
2
  "config": {
3
3
  "step": {
4
+ "reconfigure": {
5
+ "sections": {
6
+ "advanced_settings": {
7
+ "data": {
8
+ "proxy_url": "URL del proxy"
9
+ },
10
+ "data_description": {
11
+ "proxy_url": "URL del proxy se si lavora dietro un proxy, opzionalmente includendo nome utente e password.\n(socks5://username:password@proxy_ip:proxy_port)"
12
+ },
13
+ "name": "Impostazioni avanzate"
14
+ }
15
+ }
16
+ },
4
17
  "user": {
5
18
  "data_description": {
6
19
  "api_key": "Il token API del tuo bot.",
7
20
  "platform": "Implementazione del bot di Telegram"
21
+ },
22
+ "sections": {
23
+ "advanced_settings": {
24
+ "data": {
25
+ "proxy_url": "URL del proxy"
26
+ },
27
+ "data_description": {
28
+ "proxy_url": "URL del proxy se si lavora dietro un proxy, opzionalmente includendo nome utente e password.\n(socks5://username:password@proxy_ip:proxy_port)"
29
+ },
30
+ "name": "Impostazioni avanzate"
31
+ }
8
32
  }
9
33
  },
10
34
  "webhooks": {
@@ -45,6 +69,12 @@
45
69
  }
46
70
  },
47
71
  "exceptions": {
72
+ "failed_chat_ids": {
73
+ "message": "Obiettivi non riusciti: {chat_ids}. Si prega di verificare che gli ID chat per {bot_name} sono stati configurati."
74
+ },
75
+ "invalid_chat_ids": {
76
+ "message": "ID chat non validi: {chat_ids}. Si prega di configurare gli ID chat per {bot_name}."
77
+ },
48
78
  "missing_allowed_chat_ids": {
49
79
  "message": "Nessun ID chat consentito trovato. Aggiungi gli ID chat consentiti per {bot_name}."
50
80
  },