homeassistant 2025.7.0b0__py3-none-any.whl → 2025.7.0b2__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 (312) hide show
  1. homeassistant/components/aemet/sensor.py +1 -1
  2. homeassistant/components/airq/coordinator.py +2 -2
  3. homeassistant/components/alexa_devices/__init__.py +5 -2
  4. homeassistant/components/alexa_devices/notify.py +2 -0
  5. homeassistant/components/alexa_devices/quality_scale.yaml +1 -1
  6. homeassistant/components/alexa_devices/strings.json +11 -4
  7. homeassistant/components/alexa_devices/switch.py +2 -0
  8. homeassistant/components/alexa_devices/translations/bg.json +6 -4
  9. homeassistant/components/alexa_devices/translations/cs.json +12 -5
  10. homeassistant/components/alexa_devices/translations/de.json +14 -7
  11. homeassistant/components/alexa_devices/translations/el.json +12 -5
  12. homeassistant/components/alexa_devices/translations/en.json +12 -5
  13. homeassistant/components/alexa_devices/translations/es.json +12 -5
  14. homeassistant/components/alexa_devices/translations/et.json +12 -5
  15. homeassistant/components/alexa_devices/translations/ga.json +0 -6
  16. homeassistant/components/alexa_devices/translations/he.json +0 -4
  17. homeassistant/components/alexa_devices/translations/hu.json +0 -4
  18. homeassistant/components/alexa_devices/translations/id.json +1 -0
  19. homeassistant/components/alexa_devices/translations/lt.json +0 -4
  20. homeassistant/components/alexa_devices/translations/mk.json +12 -0
  21. homeassistant/components/alexa_devices/translations/nl.json +0 -4
  22. homeassistant/components/alexa_devices/translations/pl.json +0 -4
  23. homeassistant/components/alexa_devices/translations/pt.json +0 -4
  24. homeassistant/components/alexa_devices/translations/ru.json +4 -5
  25. homeassistant/components/alexa_devices/translations/sk.json +12 -5
  26. homeassistant/components/alexa_devices/translations/sv.json +17 -5
  27. homeassistant/components/alexa_devices/translations/tr.json +0 -4
  28. homeassistant/components/alexa_devices/translations/zh-Hans.json +27 -5
  29. homeassistant/components/alexa_devices/translations/zh-Hant.json +12 -5
  30. homeassistant/components/alexa_devices/utils.py +40 -0
  31. homeassistant/components/altruist/translations/id.json +11 -0
  32. homeassistant/components/anthropic/__init__.py +14 -1
  33. homeassistant/components/anthropic/translations/bg.json +21 -0
  34. homeassistant/components/anthropic/translations/ga.json +32 -1
  35. homeassistant/components/anthropic/translations/id.json +19 -0
  36. homeassistant/components/anthropic/translations/ru.json +30 -0
  37. homeassistant/components/backup/translations/de.json +1 -1
  38. homeassistant/components/buienradar/sensor.py +0 -1
  39. homeassistant/components/cambridge_audio/translations/sv.json +1 -1
  40. homeassistant/components/comelit/translations/de.json +1 -1
  41. homeassistant/components/counter/translations/sv.json +2 -2
  42. homeassistant/components/demo/translations/select.sv.json +2 -2
  43. homeassistant/components/derivative/translations/ga.json +20 -0
  44. homeassistant/components/derivative/translations/ru.json +3 -0
  45. homeassistant/components/devolo_home_control/translations/bg.json +6 -0
  46. homeassistant/components/devolo_home_control/translations/id.json +5 -0
  47. homeassistant/components/devolo_home_control/translations/sv.json +10 -0
  48. homeassistant/components/devolo_home_control/translations/zh-Hans.json +10 -0
  49. homeassistant/components/dlink/manifest.json +1 -1
  50. homeassistant/components/ecovacs/translations/sv.json +1 -1
  51. homeassistant/components/enphase_envoy/translations/sv.json +5 -2
  52. homeassistant/components/ezviz/translations/bg.json +6 -0
  53. homeassistant/components/ezviz/translations/mk.json +13 -0
  54. homeassistant/components/ezviz/translations/sv.json +10 -0
  55. homeassistant/components/ezviz/translations/zh-Hans.json +10 -0
  56. homeassistant/components/fronius/translations/sv.json +2 -2
  57. homeassistant/components/frontend/manifest.json +1 -1
  58. homeassistant/components/goodwe/translations/sv.json +5 -5
  59. homeassistant/components/google_generative_ai_conversation/__init__.py +21 -0
  60. homeassistant/components/google_generative_ai_conversation/config_flow.py +72 -36
  61. homeassistant/components/google_generative_ai_conversation/const.py +15 -2
  62. homeassistant/components/google_generative_ai_conversation/diagnostics.py +1 -0
  63. homeassistant/components/google_generative_ai_conversation/entity.py +7 -2
  64. homeassistant/components/google_generative_ai_conversation/helpers.py +73 -0
  65. homeassistant/components/google_generative_ai_conversation/strings.json +28 -1
  66. homeassistant/components/google_generative_ai_conversation/translations/bg.json +19 -0
  67. homeassistant/components/google_generative_ai_conversation/translations/cs.json +28 -0
  68. homeassistant/components/google_generative_ai_conversation/translations/de.json +28 -0
  69. homeassistant/components/google_generative_ai_conversation/translations/el.json +28 -0
  70. homeassistant/components/google_generative_ai_conversation/translations/en.json +28 -0
  71. homeassistant/components/google_generative_ai_conversation/translations/es.json +28 -0
  72. homeassistant/components/google_generative_ai_conversation/translations/et.json +28 -0
  73. homeassistant/components/google_generative_ai_conversation/translations/ga.json +9 -0
  74. homeassistant/components/google_generative_ai_conversation/translations/id.json +30 -0
  75. homeassistant/components/google_generative_ai_conversation/translations/mk.json +11 -0
  76. homeassistant/components/google_generative_ai_conversation/translations/ru.json +67 -0
  77. homeassistant/components/google_generative_ai_conversation/translations/sk.json +28 -0
  78. homeassistant/components/google_generative_ai_conversation/translations/sv.json +23 -0
  79. homeassistant/components/google_generative_ai_conversation/translations/zh-Hans.json +28 -0
  80. homeassistant/components/google_generative_ai_conversation/translations/zh-Hant.json +28 -0
  81. homeassistant/components/google_generative_ai_conversation/tts.py +48 -106
  82. homeassistant/components/group/translations/el.json +18 -18
  83. homeassistant/components/habitica/const.py +1 -1
  84. homeassistant/components/harmony/translations/select.sv.json +1 -1
  85. homeassistant/components/harmony/translations/sv.json +1 -1
  86. homeassistant/components/homeassistant_hardware/firmware_config_flow.py +89 -7
  87. homeassistant/components/homeassistant_hardware/strings.json +2 -1
  88. homeassistant/components/homeassistant_hardware/translations/de.json +1 -0
  89. homeassistant/components/homeassistant_hardware/translations/en-GB.json +1 -0
  90. homeassistant/components/homeassistant_hardware/translations/en.json +1 -0
  91. homeassistant/components/homeassistant_hardware/translations/ga.json +9 -0
  92. homeassistant/components/homeassistant_hardware/translations/mk.json +9 -0
  93. homeassistant/components/homeassistant_sky_connect/config_flow.py +1 -1
  94. homeassistant/components/homeassistant_sky_connect/strings.json +4 -2
  95. homeassistant/components/homeassistant_sky_connect/translations/de.json +2 -0
  96. homeassistant/components/homeassistant_sky_connect/translations/en-GB.json +2 -0
  97. homeassistant/components/homeassistant_sky_connect/translations/en.json +2 -0
  98. homeassistant/components/homeassistant_sky_connect/translations/ga.json +10 -0
  99. homeassistant/components/homeassistant_sky_connect/translations/mk.json +7 -0
  100. homeassistant/components/homeassistant_yellow/strings.json +2 -1
  101. homeassistant/components/homeassistant_yellow/translations/bg.json +0 -1
  102. homeassistant/components/homeassistant_yellow/translations/cs.json +0 -1
  103. homeassistant/components/homeassistant_yellow/translations/de.json +1 -0
  104. homeassistant/components/homeassistant_yellow/translations/el.json +0 -1
  105. homeassistant/components/homeassistant_yellow/translations/en-GB.json +2 -1
  106. homeassistant/components/homeassistant_yellow/translations/en.json +2 -1
  107. homeassistant/components/homeassistant_yellow/translations/es.json +0 -1
  108. homeassistant/components/homeassistant_yellow/translations/et.json +0 -1
  109. homeassistant/components/homeassistant_yellow/translations/fr.json +0 -1
  110. homeassistant/components/homeassistant_yellow/translations/ga.json +5 -0
  111. homeassistant/components/homeassistant_yellow/translations/he.json +0 -1
  112. homeassistant/components/homeassistant_yellow/translations/hu.json +0 -1
  113. homeassistant/components/homeassistant_yellow/translations/id.json +0 -1
  114. homeassistant/components/homeassistant_yellow/translations/it.json +0 -1
  115. homeassistant/components/homeassistant_yellow/translations/ja.json +0 -1
  116. homeassistant/components/homeassistant_yellow/translations/lt.json +0 -1
  117. homeassistant/components/homeassistant_yellow/translations/pt.json +0 -1
  118. homeassistant/components/homeassistant_yellow/translations/ru.json +0 -1
  119. homeassistant/components/homeassistant_yellow/translations/sk.json +0 -1
  120. homeassistant/components/homeassistant_yellow/translations/sv.json +0 -1
  121. homeassistant/components/homeassistant_yellow/translations/tr.json +0 -1
  122. homeassistant/components/homeassistant_yellow/translations/zh-Hans.json +0 -1
  123. homeassistant/components/homeassistant_yellow/translations/zh-Hant.json +0 -1
  124. homeassistant/components/homewizard/translations/sv.json +3 -1
  125. homeassistant/components/http/auth.py +1 -1
  126. homeassistant/components/image/__init__.py +34 -3
  127. homeassistant/components/input_number/translations/sv.json +2 -2
  128. homeassistant/components/input_select/translations/sv.json +6 -6
  129. homeassistant/components/input_text/translations/sv.json +1 -1
  130. homeassistant/components/iron_os/manifest.json +1 -1
  131. homeassistant/components/iron_os/translations/sv.json +1 -1
  132. homeassistant/components/keenetic_ndms2/translations/id.json +3 -0
  133. homeassistant/components/lamarzocco/entity.py +19 -1
  134. homeassistant/components/lamarzocco/number.py +0 -4
  135. homeassistant/components/lamarzocco/sensor.py +2 -4
  136. homeassistant/components/lamarzocco/translations/sv.json +3 -3
  137. homeassistant/components/lametric/translations/sv.json +2 -2
  138. homeassistant/components/lametric/update.py +1 -1
  139. homeassistant/components/lg_thinq/translations/sv.json +5 -5
  140. homeassistant/components/litterrobot/translations/bg.json +4 -0
  141. homeassistant/components/litterrobot/translations/ga.json +3 -0
  142. homeassistant/components/matter/translations/id.json +5 -0
  143. homeassistant/components/matter/vacuum.py +38 -26
  144. homeassistant/components/meater/__init__.py +5 -1
  145. homeassistant/components/meater/coordinator.py +4 -2
  146. homeassistant/components/media_source/local_source.py +21 -4
  147. homeassistant/components/minecraft_server/translations/sv.json +1 -1
  148. homeassistant/components/motioneye/translations/sv.json +1 -1
  149. homeassistant/components/mqtt/translations/bg.json +10 -0
  150. homeassistant/components/mqtt/translations/cs.json +19 -0
  151. homeassistant/components/mqtt/translations/el.json +21 -0
  152. homeassistant/components/mqtt/translations/fi.json +3 -0
  153. homeassistant/components/mqtt/translations/ga.json +25 -0
  154. homeassistant/components/mqtt/translations/mk.json +23 -0
  155. homeassistant/components/mqtt/translations/ru.json +1 -0
  156. homeassistant/components/mqtt/translations/sv.json +24 -0
  157. homeassistant/components/mqtt/translations/zh-Hans.json +26 -0
  158. homeassistant/components/mqtt/translations/zh-Hant.json +19 -0
  159. homeassistant/components/music_assistant/button.py +0 -6
  160. homeassistant/components/ntfy/translations/id.json +13 -0
  161. homeassistant/components/ntfy/translations/sv.json +1 -0
  162. homeassistant/components/number/translations/sv.json +2 -2
  163. homeassistant/components/nut/config_flow.py +4 -2
  164. homeassistant/components/ohme/translations/sv.json +1 -1
  165. homeassistant/components/ollama/__init__.py +8 -0
  166. homeassistant/components/ollama/const.py +2 -0
  167. homeassistant/components/ollama/translations/bg.json +19 -0
  168. homeassistant/components/ollama/translations/ga.json +31 -1
  169. homeassistant/components/ollama/translations/id.json +18 -0
  170. homeassistant/components/ollama/translations/mk.json +13 -1
  171. homeassistant/components/ollama/translations/sv.json +1 -0
  172. homeassistant/components/onewire/translations/sv.json +4 -4
  173. homeassistant/components/openai_conversation/__init__.py +8 -0
  174. homeassistant/components/openai_conversation/const.py +1 -1
  175. homeassistant/components/openai_conversation/conversation.py +1 -1
  176. homeassistant/components/openai_conversation/translations/bg.json +26 -0
  177. homeassistant/components/openai_conversation/translations/id.json +23 -0
  178. homeassistant/components/openai_conversation/translations/mk.json +44 -0
  179. homeassistant/components/openai_conversation/translations/sv.json +4 -0
  180. homeassistant/components/playstation_network/diagnostics.py +55 -0
  181. homeassistant/components/playstation_network/quality_scale.yaml +1 -1
  182. homeassistant/components/playstation_network/translations/bg.json +25 -1
  183. homeassistant/components/playstation_network/translations/es.json +1 -1
  184. homeassistant/components/playstation_network/translations/ga.json +31 -0
  185. homeassistant/components/playstation_network/translations/id.json +14 -0
  186. homeassistant/components/playstation_network/translations/mk.json +18 -0
  187. homeassistant/components/playstation_network/translations/pl.json +73 -0
  188. homeassistant/components/playstation_network/translations/sv.json +29 -0
  189. homeassistant/components/playstation_network/translations/zh-Hans.json +29 -0
  190. homeassistant/components/plugwise/translations/sv.json +2 -2
  191. homeassistant/components/qnap/translations/sv.json +1 -1
  192. homeassistant/components/random/translations/sv.json +4 -4
  193. homeassistant/components/remote_calendar/translations/fi.json +34 -0
  194. homeassistant/components/select/translations/sv.json +10 -10
  195. homeassistant/components/smarla/__init__.py +2 -2
  196. homeassistant/components/sonos/translations/bg.json +5 -0
  197. homeassistant/components/sonos/translations/cs.json +6 -0
  198. homeassistant/components/sonos/translations/el.json +6 -0
  199. homeassistant/components/sonos/translations/ga.json +8 -0
  200. homeassistant/components/sonos/translations/mk.json +10 -0
  201. homeassistant/components/sonos/translations/ru.json +6 -0
  202. homeassistant/components/sonos/translations/sv.json +6 -0
  203. homeassistant/components/sonos/translations/zh-Hans.json +9 -0
  204. homeassistant/components/sonos/translations/zh-Hant.json +6 -0
  205. homeassistant/components/subaru/strings.json +2 -2
  206. homeassistant/components/subaru/translations/ca.json +0 -1
  207. homeassistant/components/subaru/translations/cs.json +0 -2
  208. homeassistant/components/subaru/translations/de.json +2 -2
  209. homeassistant/components/subaru/translations/el.json +0 -2
  210. homeassistant/components/subaru/translations/en-GB.json +0 -2
  211. homeassistant/components/subaru/translations/en.json +2 -2
  212. homeassistant/components/subaru/translations/es.json +0 -2
  213. homeassistant/components/subaru/translations/et.json +0 -2
  214. homeassistant/components/subaru/translations/fi.json +0 -1
  215. homeassistant/components/subaru/translations/hu.json +0 -2
  216. homeassistant/components/subaru/translations/it.json +0 -1
  217. homeassistant/components/subaru/translations/ja.json +0 -1
  218. homeassistant/components/subaru/translations/ko.json +0 -1
  219. homeassistant/components/subaru/translations/lt.json +0 -2
  220. homeassistant/components/subaru/translations/pt-BR.json +0 -1
  221. homeassistant/components/subaru/translations/pt.json +0 -2
  222. homeassistant/components/subaru/translations/ru.json +0 -2
  223. homeassistant/components/subaru/translations/sk.json +0 -2
  224. homeassistant/components/subaru/translations/sv.json +0 -2
  225. homeassistant/components/subaru/translations/tr.json +0 -2
  226. homeassistant/components/subaru/translations/zh-Hans.json +0 -2
  227. homeassistant/components/subaru/translations/zh-Hant.json +0 -2
  228. homeassistant/components/switchbot/translations/bg.json +26 -0
  229. homeassistant/components/switchbot/translations/ga.json +33 -0
  230. homeassistant/components/switchbot/translations/id.json +19 -0
  231. homeassistant/components/switchbot/translations/mk.json +49 -0
  232. homeassistant/components/switchbot/translations/sv.json +54 -0
  233. homeassistant/components/switchbot/translations/zh-Hans.json +53 -0
  234. homeassistant/components/telegram_bot/__init__.py +20 -4
  235. homeassistant/components/telegram_bot/bot.py +33 -29
  236. homeassistant/components/telegram_bot/config_flow.py +66 -20
  237. homeassistant/components/telegram_bot/const.py +1 -1
  238. homeassistant/components/telegram_bot/strings.json +33 -10
  239. homeassistant/components/telegram_bot/translations/bg.json +0 -1
  240. homeassistant/components/telegram_bot/translations/cs.json +35 -12
  241. homeassistant/components/telegram_bot/translations/de.json +35 -12
  242. homeassistant/components/telegram_bot/translations/el.json +35 -12
  243. homeassistant/components/telegram_bot/translations/en-GB.json +6 -11
  244. homeassistant/components/telegram_bot/translations/en.json +35 -12
  245. homeassistant/components/telegram_bot/translations/es.json +35 -12
  246. homeassistant/components/telegram_bot/translations/et.json +34 -11
  247. homeassistant/components/telegram_bot/translations/fr.json +5 -12
  248. homeassistant/components/telegram_bot/translations/ga.json +5 -11
  249. homeassistant/components/telegram_bot/translations/he.json +3 -8
  250. homeassistant/components/telegram_bot/translations/hu.json +5 -12
  251. homeassistant/components/telegram_bot/translations/id.json +0 -5
  252. homeassistant/components/telegram_bot/translations/it.json +2 -5
  253. homeassistant/components/telegram_bot/translations/lt.json +5 -12
  254. homeassistant/components/telegram_bot/translations/mk.json +7 -5
  255. homeassistant/components/telegram_bot/translations/nl.json +5 -12
  256. homeassistant/components/telegram_bot/translations/pt.json +5 -12
  257. homeassistant/components/telegram_bot/translations/ru.json +12 -11
  258. homeassistant/components/telegram_bot/translations/sk.json +35 -12
  259. homeassistant/components/telegram_bot/translations/sv.json +28 -12
  260. homeassistant/components/telegram_bot/translations/tr.json +5 -12
  261. homeassistant/components/telegram_bot/translations/zh-Hans.json +35 -12
  262. homeassistant/components/telegram_bot/translations/zh-Hant.json +35 -12
  263. homeassistant/components/template/translations/sv.json +5 -5
  264. homeassistant/components/text/translations/sv.json +1 -1
  265. homeassistant/components/tilt_pi/translations/id.json +11 -0
  266. homeassistant/components/tts/__init__.py +15 -0
  267. homeassistant/components/unifiprotect/translations/zh-Hans.json +3 -3
  268. homeassistant/components/utility_meter/translations/sv.json +9 -9
  269. homeassistant/components/vegehub/translations/bg.json +2 -0
  270. homeassistant/components/vegehub/translations/id.json +11 -0
  271. homeassistant/components/vegehub/translations/sv.json +2 -1
  272. homeassistant/components/vicare/translations/sv.json +2 -2
  273. homeassistant/components/whirlpool/translations/sv.json +12 -12
  274. homeassistant/components/wyoming/translations/sv.json +2 -2
  275. homeassistant/components/zha/translations/bg.json +23 -0
  276. homeassistant/components/zha/translations/el.json +10 -0
  277. homeassistant/components/zha/translations/ga.json +20 -0
  278. homeassistant/components/zha/translations/id.json +6 -0
  279. homeassistant/components/zha/translations/sv.json +23 -0
  280. homeassistant/components/zha/translations/zh-Hans.json +50 -0
  281. homeassistant/components/zwave_js/api.py +1 -1
  282. homeassistant/components/zwave_js/config_flow.py +15 -68
  283. homeassistant/components/zwave_js/manifest.json +1 -1
  284. homeassistant/components/zwave_js/strings.json +1 -5
  285. homeassistant/components/zwave_js/translations/bg.json +0 -3
  286. homeassistant/components/zwave_js/translations/cs.json +0 -5
  287. homeassistant/components/zwave_js/translations/de.json +1 -5
  288. homeassistant/components/zwave_js/translations/el.json +0 -5
  289. homeassistant/components/zwave_js/translations/en-GB.json +1 -5
  290. homeassistant/components/zwave_js/translations/en.json +1 -5
  291. homeassistant/components/zwave_js/translations/es.json +1 -5
  292. homeassistant/components/zwave_js/translations/et.json +0 -5
  293. homeassistant/components/zwave_js/translations/ga.json +0 -5
  294. homeassistant/components/zwave_js/translations/hu.json +0 -5
  295. homeassistant/components/zwave_js/translations/lt.json +0 -5
  296. homeassistant/components/zwave_js/translations/mk.json +0 -5
  297. homeassistant/components/zwave_js/translations/pt.json +0 -5
  298. homeassistant/components/zwave_js/translations/ru.json +0 -5
  299. homeassistant/components/zwave_js/translations/sk.json +0 -5
  300. homeassistant/components/zwave_js/translations/sv.json +0 -5
  301. homeassistant/components/zwave_js/translations/zh-Hans.json +0 -5
  302. homeassistant/components/zwave_js/translations/zh-Hant.json +1 -5
  303. homeassistant/config_entries.py +6 -0
  304. homeassistant/const.py +1 -1
  305. homeassistant/package_constraints.txt +1 -1
  306. {homeassistant-2025.7.0b0.dist-info → homeassistant-2025.7.0b2.dist-info}/METADATA +1 -1
  307. {homeassistant-2025.7.0b0.dist-info → homeassistant-2025.7.0b2.dist-info}/RECORD +312 -294
  308. {homeassistant-2025.7.0b0.dist-info → homeassistant-2025.7.0b2.dist-info}/WHEEL +0 -0
  309. {homeassistant-2025.7.0b0.dist-info → homeassistant-2025.7.0b2.dist-info}/entry_points.txt +0 -0
  310. {homeassistant-2025.7.0b0.dist-info → homeassistant-2025.7.0b2.dist-info}/licenses/LICENSE.md +0 -0
  311. {homeassistant-2025.7.0b0.dist-info → homeassistant-2025.7.0b2.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  312. {homeassistant-2025.7.0b0.dist-info → homeassistant-2025.7.0b2.dist-info}/top_level.txt +0 -0
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Desbloquea puerta(s) espec\u00edfica(s).",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "\u00bfQu\u00e9 puerta(s) abrir?",
108
106
  "name": "Puerta"
109
107
  }
110
108
  },
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Avab teatud uks(ed).",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "Milliseid uksi avada.",
108
106
  "name": "Uks"
109
107
  }
110
108
  },
@@ -97,7 +97,6 @@
97
97
  },
98
98
  "services": {
99
99
  "unlock_specific_door": {
100
- "description": "Avaa tietyt ovet.",
101
100
  "fields": {
102
101
  "door": {
103
102
  "name": "Ovi"
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Kinyitja a meghat\u00e1rozott ajt\u00f3(ka)t.",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "Melyik ajt\u00f3(ka)t kell kinyitni",
108
106
  "name": "Ajt\u00f3"
109
107
  }
110
108
  },
@@ -97,7 +97,6 @@
97
97
  },
98
98
  "services": {
99
99
  "unlock_specific_door": {
100
- "description": "Sblocca portiere specifiche.",
101
100
  "fields": {
102
101
  "door": {
103
102
  "name": "Portiera"
@@ -98,7 +98,6 @@
98
98
  },
99
99
  "services": {
100
100
  "unlock_specific_door": {
101
- "description": "\u7279\u5b9a\u306e\u30c9\u30a2\u306e\u30ed\u30c3\u30af\u3092\u89e3\u9664\u3057\u307e\u3059\u3002",
102
101
  "fields": {
103
102
  "door": {
104
103
  "name": "\u30c9\u30a2"
@@ -97,7 +97,6 @@
97
97
  },
98
98
  "services": {
99
99
  "unlock_specific_door": {
100
- "description": "\ud2b9\uc815 \ubb38 \uc7a0\uae08 \ud574\uc81c",
101
100
  "fields": {
102
101
  "door": {
103
102
  "name": "\ubb38"
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Atrakina konkre\u010dias duris.",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "Kurias duris (-es) atidaryti.",
108
106
  "name": "Durys"
109
107
  }
110
108
  },
@@ -98,7 +98,6 @@
98
98
  },
99
99
  "services": {
100
100
  "unlock_specific_door": {
101
- "description": "Desbloqueia portas espec\u00edficas.",
102
101
  "fields": {
103
102
  "door": {
104
103
  "name": "Porta"
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Desbloqueia porta(s) espec\u00edfica(s).",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "Que porta(s) abrir.",
108
106
  "name": "Porta"
109
107
  }
110
108
  },
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "\u0420\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u0432\u0435\u0440\u0438.",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "\u041a\u0430\u043a\u0438\u0435 \u0434\u0432\u0435\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044c.",
108
106
  "name": "\u0414\u0432\u0435\u0440\u044c"
109
107
  }
110
108
  },
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "Odomkne \u0161pecifick\u00e9 dvere.",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "Ktor\u00e9 dvere otvori\u0165.",
108
106
  "name": "Dvere"
109
107
  }
110
108
  },
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "L\u00e5ser upp specifik(a) d\u00f6rr(ar).",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "Vilken/vilka d\u00f6rrar som ska \u00f6ppnas.",
108
106
  "name": "D\u00f6rr"
109
107
  }
110
108
  },
@@ -100,10 +100,8 @@
100
100
  },
101
101
  "services": {
102
102
  "unlock_specific_door": {
103
- "description": "Belirli kap\u0131(lar)\u0131n kilidini a\u00e7ar.",
104
103
  "fields": {
105
104
  "door": {
106
- "description": "Hangi kap\u0131(lar)\u0131n a\u00e7\u0131laca\u011f\u0131.",
107
105
  "name": "Kap\u0131"
108
106
  }
109
107
  },
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "\u89e3\u9501\u7279\u5b9a\u7684\u95e8\u3002",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "\u6253\u5f00\u54ea\u6247\u95e8\u3002",
108
106
  "name": "\u95e8"
109
107
  }
110
108
  },
@@ -101,10 +101,8 @@
101
101
  },
102
102
  "services": {
103
103
  "unlock_specific_door": {
104
- "description": "\u89e3\u9396\u6307\u5b9a\u9580\u3002",
105
104
  "fields": {
106
105
  "door": {
107
- "description": "\u958b\u555f\u54ea\u6247\u9580\u3002",
108
106
  "name": "\u8eca\u9580"
109
107
  }
110
108
  },
@@ -101,6 +101,15 @@
101
101
  }
102
102
  },
103
103
  "humidifier": {
104
+ "evaporative_humidifier": {
105
+ "state_attributes": {
106
+ "mode": {
107
+ "state": {
108
+ "auto": "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u043d\u043e"
109
+ }
110
+ }
111
+ }
112
+ },
104
113
  "humidifier": {
105
114
  "state_attributes": {
106
115
  "last_run_success": {
@@ -112,6 +121,20 @@
112
121
  }
113
122
  }
114
123
  },
124
+ "light": {
125
+ "light": {
126
+ "state_attributes": {
127
+ "effect": {
128
+ "state": {
129
+ "autumn": "\u0415\u0441\u0435\u043d",
130
+ "christmas": "\u041a\u043e\u043b\u0435\u0434\u0430",
131
+ "forest": "\u0413\u043e\u0440\u0430",
132
+ "ocean": "\u041e\u043a\u0435\u0430\u043d"
133
+ }
134
+ }
135
+ }
136
+ }
137
+ },
115
138
  "lock": {
116
139
  "lock": {
117
140
  "state_attributes": {
@@ -131,6 +154,9 @@
131
154
  "light_level": {
132
155
  "name": "\u041d\u0438\u0432\u043e \u043d\u0430 \u043e\u0441\u0432\u0435\u0442\u0435\u043d\u043e\u0441\u0442"
133
156
  },
157
+ "water_level": {
158
+ "name": "\u041d\u0438\u0432\u043e \u043d\u0430 \u0432\u043e\u0434\u0430\u0442\u0430"
159
+ },
134
160
  "wifi_signal": {
135
161
  "name": "Wi-Fi \u0441\u0438\u0433\u043d\u0430\u043b"
136
162
  }
@@ -54,6 +54,39 @@
54
54
  }
55
55
  }
56
56
  },
57
+ "humidifier": {
58
+ "evaporative_humidifier": {
59
+ "state_attributes": {
60
+ "mode": {
61
+ "state": {
62
+ "auto": "Uath",
63
+ "drying_filter": "Scagaire triom\u00fa",
64
+ "high": "Ard",
65
+ "low": "\u00cdseal",
66
+ "medium": "Me\u00e1nach"
67
+ }
68
+ }
69
+ }
70
+ }
71
+ },
72
+ "light": {
73
+ "light": {
74
+ "state_attributes": {
75
+ "effect": {
76
+ "state": {
77
+ "autumn": "F\u00f3mhar",
78
+ "breathing": "An\u00e1l\u00fa",
79
+ "christmas": "Nollaig",
80
+ "colorful": "Ildaite",
81
+ "cool": "Fionnuar",
82
+ "fade": "C\u00e9imni\u00fa",
83
+ "flashing": "Ag splancadh",
84
+ "vitality": "Beocht"
85
+ }
86
+ }
87
+ }
88
+ }
89
+ },
57
90
  "sensor": {
58
91
  "aqi_quality_level": {
59
92
  "name": "Leibh\u00e9al c\u00e1il\u00edochta aeir",
@@ -84,6 +84,18 @@
84
84
  }
85
85
  },
86
86
  "humidifier": {
87
+ "evaporative_humidifier": {
88
+ "state_attributes": {
89
+ "mode": {
90
+ "state": {
91
+ "auto": "Otomatis",
92
+ "high": "Tinggi",
93
+ "low": "Rendah",
94
+ "medium": "Sedang"
95
+ }
96
+ }
97
+ }
98
+ },
87
99
  "humidifier": {
88
100
  "state_attributes": {
89
101
  "last_run_success": {
@@ -114,6 +126,13 @@
114
126
  "light_level": {
115
127
  "name": "Tingkat ringan"
116
128
  },
129
+ "water_level": {
130
+ "state": {
131
+ "high": "Tinggi",
132
+ "low": "Rendah",
133
+ "medium": "Sedang"
134
+ }
135
+ },
117
136
  "wifi_signal": {
118
137
  "name": "Sinyal Wi-Fi"
119
138
  }
@@ -12,6 +12,49 @@
12
12
  }
13
13
  }
14
14
  },
15
+ "humidifier": {
16
+ "evaporative_humidifier": {
17
+ "state_attributes": {
18
+ "mode": {
19
+ "state": {
20
+ "drying_filter": "\u0424\u0438\u043b\u0442\u0435\u0440 \u0437\u0430 \u0441\u0443\u0448\u0435\u045a\u0435",
21
+ "quiet": "\u0422\u0438\u0432\u043a\u043e",
22
+ "sleep": "\u0421\u043f\u0438\u0435",
23
+ "target_humidity": "\u0426\u0435\u043b\u043d\u0430 \u0432\u043b\u0430\u0436\u043d\u043e\u0441\u0442"
24
+ }
25
+ }
26
+ }
27
+ }
28
+ },
29
+ "light": {
30
+ "light": {
31
+ "state_attributes": {
32
+ "effect": {
33
+ "state": {
34
+ "autumn": "\u0415\u0441\u0435\u043d",
35
+ "breathing": "\u0414\u0438\u0448\u0435\u045a\u0435",
36
+ "christmas": "\u0411\u043e\u0436\u0438\u045c",
37
+ "colorful": "\u0428\u0430\u0440\u0435\u043d\u0438",
38
+ "cool": "\u041a\u0443\u043b",
39
+ "fade": "\u0418\u0437\u0431\u043b\u0435\u0434\u0443\u0432\u0430\u045a\u0435",
40
+ "flashing": "\u0422\u0440\u0435\u043f\u043a\u0430\u045a\u0435",
41
+ "flickering": "\u0422\u0440\u0435\u043f\u0435\u0440\u0435\u045a\u0435",
42
+ "flow": "\u0422\u0435\u043a",
43
+ "forest": "\u0428\u0443\u043c\u0430",
44
+ "halloween": "\u041d\u043e\u045c\u0442\u0430 \u043d\u0430 \u0432\u0435\u0448\u0442\u0435\u0440\u043a\u0438\u0442\u0435",
45
+ "modern": "\u041c\u043e\u0434\u0435\u0440\u0435\u043d",
46
+ "ocean": "\u041e\u043a\u0435\u0430\u043d",
47
+ "relax": "\u0420\u0435\u043b\u0430\u043a\u0441\u0438\u0440\u0430\u0458\u0442\u0435 \u0441\u0435",
48
+ "rose": "\u0420\u043e\u0437\u0430",
49
+ "smooth": "\u041c\u0430\u0437\u043d\u043e",
50
+ "strobe": "\u0421\u0442\u0440\u043e\u0431\u043e\u0441\u043a\u043e\u043f",
51
+ "sunset": "\u0417\u0430\u0458\u0434\u0438\u0441\u043e\u043d\u0446\u0435",
52
+ "vitality": "\u0412\u0438\u0442\u0430\u043b\u043d\u043e\u0441\u0442"
53
+ }
54
+ }
55
+ }
56
+ }
57
+ },
15
58
  "sensor": {
16
59
  "aqi_quality_level": {
17
60
  "name": "\u041d\u0438\u0432\u043e \u043d\u0430 \u043a\u0432\u0430\u043b\u0438\u0442\u0435\u0442 \u043d\u0430 \u0432\u043e\u0437\u0434\u0443\u0445",
@@ -21,6 +64,12 @@
21
64
  "moderate": "\u0423\u043c\u0435\u0440\u0435\u043d\u043e",
22
65
  "unhealthy": "\u041d\u0435\u0437\u0434\u0440\u0430\u0432\u043e"
23
66
  }
67
+ },
68
+ "water_level": {
69
+ "name": "\u041d\u0438\u0432\u043e \u043d\u0430 \u0432\u043e\u0434\u0430\u0442\u0430",
70
+ "state": {
71
+ "empty": "\u041f\u0440\u0430\u0437\u043d\u043e"
72
+ }
24
73
  }
25
74
  }
26
75
  }
@@ -135,6 +135,22 @@
135
135
  }
136
136
  },
137
137
  "humidifier": {
138
+ "evaporative_humidifier": {
139
+ "state_attributes": {
140
+ "mode": {
141
+ "state": {
142
+ "auto": "Auto",
143
+ "drying_filter": "Torkfilter",
144
+ "high": "H\u00f6g",
145
+ "low": "L\u00e5g",
146
+ "medium": "Medel",
147
+ "quiet": "Tyst",
148
+ "sleep": "Sova",
149
+ "target_humidity": "M\u00e5lluftfuktighet"
150
+ }
151
+ }
152
+ }
153
+ },
138
154
  "humidifier": {
139
155
  "state_attributes": {
140
156
  "last_run_success": {
@@ -146,6 +162,35 @@
146
162
  }
147
163
  }
148
164
  },
165
+ "light": {
166
+ "light": {
167
+ "state_attributes": {
168
+ "effect": {
169
+ "state": {
170
+ "autumn": "H\u00f6st",
171
+ "breathing": "Andning",
172
+ "christmas": "Jul",
173
+ "colorful": "F\u00e4rgstark",
174
+ "cool": "Sval",
175
+ "fade": "Tona",
176
+ "flashing": "Blinkande",
177
+ "flickering": "Flimrande",
178
+ "flow": "Fl\u00f6de",
179
+ "forest": "Skog",
180
+ "halloween": "Halloween",
181
+ "modern": "Modern",
182
+ "ocean": "Hav",
183
+ "relax": "Koppla av",
184
+ "rose": "Ros",
185
+ "smooth": "Mjukt",
186
+ "strobe": "Stroboskop",
187
+ "sunset": "Solnedg\u00e5ng",
188
+ "vitality": "Vitalitet"
189
+ }
190
+ }
191
+ }
192
+ }
193
+ },
149
194
  "lock": {
150
195
  "lock": {
151
196
  "state_attributes": {
@@ -174,6 +219,15 @@
174
219
  "light_level": {
175
220
  "name": "Ljusniv\u00e5"
176
221
  },
222
+ "water_level": {
223
+ "name": "Vattenniv\u00e5",
224
+ "state": {
225
+ "empty": "Tom",
226
+ "high": "H\u00f6g",
227
+ "low": "L\u00e5g",
228
+ "medium": "Medel"
229
+ }
230
+ },
177
231
  "wifi_signal": {
178
232
  "name": "Wi-Fi-signal"
179
233
  }
@@ -135,6 +135,22 @@
135
135
  }
136
136
  },
137
137
  "humidifier": {
138
+ "evaporative_humidifier": {
139
+ "state_attributes": {
140
+ "mode": {
141
+ "state": {
142
+ "auto": "\u81ea\u52a8",
143
+ "drying_filter": "\u5e72\u71e5\u8fc7\u6ee4\u5668",
144
+ "high": "\u9ad8",
145
+ "low": "\u4f4e",
146
+ "medium": "\u4e2d",
147
+ "quiet": "\u5b89\u9759",
148
+ "sleep": "\u7761\u7720",
149
+ "target_humidity": "\u76ee\u6807\u6e7f\u5ea6"
150
+ }
151
+ }
152
+ }
153
+ },
138
154
  "humidifier": {
139
155
  "state_attributes": {
140
156
  "last_run_success": {
@@ -146,6 +162,35 @@
146
162
  }
147
163
  }
148
164
  },
165
+ "light": {
166
+ "light": {
167
+ "state_attributes": {
168
+ "effect": {
169
+ "state": {
170
+ "autumn": "\u79cb\u5b63",
171
+ "breathing": "\u547c\u5438",
172
+ "christmas": "\u5723\u8bde\u8282",
173
+ "colorful": "\u591a\u5f69",
174
+ "cool": "\u51c9\u723d",
175
+ "fade": "\u6de1\u5316",
176
+ "flashing": "\u95ea\u5149",
177
+ "flickering": "\u95ea\u70c1",
178
+ "flow": "\u6d41\u52a8",
179
+ "forest": "\u68ee\u6797",
180
+ "halloween": "\u4e07\u5723\u8282",
181
+ "modern": "\u73b0\u4ee3",
182
+ "ocean": "\u6d77\u6d0b",
183
+ "relax": "\u653e\u677e",
184
+ "rose": "\u73ab\u7470",
185
+ "smooth": "\u987a\u6ed1",
186
+ "strobe": "\u9891\u95ea",
187
+ "sunset": "\u65e5\u843d",
188
+ "vitality": "\u6d3b\u529b"
189
+ }
190
+ }
191
+ }
192
+ }
193
+ },
149
194
  "lock": {
150
195
  "lock": {
151
196
  "state_attributes": {
@@ -174,6 +219,14 @@
174
219
  "light_level": {
175
220
  "name": "\u706f\u5149\u7ea7\u522b"
176
221
  },
222
+ "water_level": {
223
+ "name": "\u6c34\u4f4d",
224
+ "state": {
225
+ "high": "\u9ad8",
226
+ "low": "\u4f4e",
227
+ "medium": "\u4e2d"
228
+ }
229
+ },
177
230
  "wifi_signal": {
178
231
  "name": "Wi-Fi\u4fe1\u53f7"
179
232
  }
@@ -29,6 +29,7 @@ from homeassistant.core import (
29
29
  from homeassistant.exceptions import (
30
30
  ConfigEntryAuthFailed,
31
31
  ConfigEntryNotReady,
32
+ HomeAssistantError,
32
33
  ServiceValidationError,
33
34
  )
34
35
  from homeassistant.helpers import config_validation as cv
@@ -390,9 +391,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
390
391
  elif msgtype == SERVICE_DELETE_MESSAGE:
391
392
  await notify_service.delete_message(context=service.context, **kwargs)
392
393
  elif msgtype == SERVICE_LEAVE_CHAT:
393
- messages = await notify_service.leave_chat(
394
- context=service.context, **kwargs
395
- )
394
+ await notify_service.leave_chat(context=service.context, **kwargs)
396
395
  elif msgtype == SERVICE_SET_MESSAGE_REACTION:
397
396
  await notify_service.set_message_reaction(context=service.context, **kwargs)
398
397
  else:
@@ -400,12 +399,29 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
400
399
  msgtype, context=service.context, **kwargs
401
400
  )
402
401
 
403
- if service.return_response and messages:
402
+ if service.return_response and messages is not None:
403
+ target: list[int] | None = service.data.get(ATTR_TARGET)
404
+ if not target:
405
+ target = notify_service.get_target_chat_ids(None)
406
+
407
+ failed_chat_ids = [chat_id for chat_id in target if chat_id not in messages]
408
+ if failed_chat_ids:
409
+ raise HomeAssistantError(
410
+ f"Failed targets: {failed_chat_ids}",
411
+ translation_domain=DOMAIN,
412
+ translation_key="failed_chat_ids",
413
+ translation_placeholders={
414
+ "chat_ids": ", ".join([str(i) for i in failed_chat_ids]),
415
+ "bot_name": config_entry.title,
416
+ },
417
+ )
418
+
404
419
  return {
405
420
  "chats": [
406
421
  {"chat_id": cid, "message_id": mid} for cid, mid in messages.items()
407
422
  ]
408
423
  }
424
+
409
425
  return None
410
426
 
411
427
  # Register notification services