homeassistant 2025.11.0b2__py3-none-any.whl → 2025.11.0b5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. homeassistant/components/alexa_devices/manifest.json +1 -1
  2. homeassistant/components/alexa_devices/translations/bg.json +13 -0
  3. homeassistant/components/ambient_network/sensor.py +5 -5
  4. homeassistant/components/blink/translations/bg.json +8 -1
  5. homeassistant/components/brother/translations/bg.json +0 -6
  6. homeassistant/components/brother/translations/ca.json +1 -5
  7. homeassistant/components/brother/translations/cs.json +2 -2
  8. homeassistant/components/brother/translations/da.json +1 -5
  9. homeassistant/components/brother/translations/de.json +4 -4
  10. homeassistant/components/brother/translations/el.json +1 -5
  11. homeassistant/components/brother/translations/en-GB.json +4 -4
  12. homeassistant/components/brother/translations/en.json +4 -4
  13. homeassistant/components/brother/translations/es-419.json +0 -5
  14. homeassistant/components/brother/translations/es.json +2 -2
  15. homeassistant/components/brother/translations/et.json +2 -2
  16. homeassistant/components/brother/translations/fi.json +1 -5
  17. homeassistant/components/brother/translations/fr.json +1 -5
  18. homeassistant/components/brother/translations/ga.json +2 -10
  19. homeassistant/components/brother/translations/hu.json +1 -5
  20. homeassistant/components/brother/translations/id.json +1 -5
  21. homeassistant/components/brother/translations/it.json +1 -5
  22. homeassistant/components/brother/translations/ja.json +1 -5
  23. homeassistant/components/brother/translations/ko.json +1 -5
  24. homeassistant/components/brother/translations/lb.json +1 -2
  25. homeassistant/components/brother/translations/lt.json +2 -2
  26. homeassistant/components/brother/translations/nb.json +1 -5
  27. homeassistant/components/brother/translations/nl.json +1 -5
  28. homeassistant/components/brother/translations/pl.json +3 -7
  29. homeassistant/components/brother/translations/pt-BR.json +1 -5
  30. homeassistant/components/brother/translations/pt.json +2 -10
  31. homeassistant/components/brother/translations/ro.json +1 -2
  32. homeassistant/components/brother/translations/ru.json +1 -5
  33. homeassistant/components/brother/translations/sk.json +2 -2
  34. homeassistant/components/brother/translations/sl.json +2 -10
  35. homeassistant/components/brother/translations/sv.json +2 -10
  36. homeassistant/components/brother/translations/tr.json +1 -5
  37. homeassistant/components/brother/translations/uk.json +1 -5
  38. homeassistant/components/brother/translations/vi.json +1 -5
  39. homeassistant/components/brother/translations/zh-Hans.json +2 -2
  40. homeassistant/components/brother/translations/zh-Hant.json +4 -4
  41. homeassistant/components/bryant_evolution/translations/lt.json +3 -0
  42. homeassistant/components/control4/translations/es.json +2 -1
  43. homeassistant/components/cover/translations/es.json +7 -7
  44. homeassistant/components/daikin/translations/es.json +1 -0
  45. homeassistant/components/ecovacs/translations/es.json +27 -0
  46. homeassistant/components/ecovacs/translations/sr-Latn.json +18 -0
  47. homeassistant/components/esphome/__init__.py +5 -3
  48. homeassistant/components/esphome/translations/he.json +2 -2
  49. homeassistant/components/fing/translations/bg.json +20 -0
  50. homeassistant/components/fing/translations/es.json +31 -0
  51. homeassistant/components/firefly_iii/translations/bg.json +3 -0
  52. homeassistant/components/foscam/manifest.json +1 -1
  53. homeassistant/components/frontend/__init__.py +1 -1
  54. homeassistant/components/frontend/manifest.json +1 -1
  55. homeassistant/components/google_sheets/translations/bg.json +10 -0
  56. homeassistant/components/google_sheets/translations/es.json +9 -0
  57. homeassistant/components/google_sheets/translations/sr-Latn.json +14 -0
  58. homeassistant/components/habitica/translations/es.json +26 -0
  59. homeassistant/components/hassio/issues.py +0 -2
  60. homeassistant/components/hassio/translations/es.json +13 -0
  61. homeassistant/components/holiday/manifest.json +1 -1
  62. homeassistant/components/homeassistant_connect_zbt2/config_flow.py +1 -1
  63. homeassistant/components/homewizard/translations/es.json +4 -2
  64. homeassistant/components/inels/translations/bg.json +1 -0
  65. homeassistant/components/inels/translations/es.json +30 -0
  66. homeassistant/components/jewish_calendar/translations/es.json +6 -0
  67. homeassistant/components/knx/translations/bg.json +93 -0
  68. homeassistant/components/knx/translations/es.json +39 -8
  69. homeassistant/components/knx/translations/sr-Latn.json +44 -1
  70. homeassistant/components/lametric/translations/es.json +1 -0
  71. homeassistant/components/lg_thinq/sensor.py +1 -0
  72. homeassistant/components/litterrobot/manifest.json +1 -1
  73. homeassistant/components/london_underground/translations/he.json +1 -0
  74. homeassistant/components/matrix/translations/bg.json +2 -1
  75. homeassistant/components/matter/translations/bg.json +7 -0
  76. homeassistant/components/matter/translations/es.json +26 -3
  77. homeassistant/components/mcp/translations/es.json +4 -0
  78. homeassistant/components/mqtt/translations/es.json +4 -4
  79. homeassistant/components/mqtt/translations/he.json +2 -2
  80. homeassistant/components/nederlandse_spoorwegen/translations/bg.json +2 -1
  81. homeassistant/components/nextdns/translations/bg.json +2 -1
  82. homeassistant/components/nina/translations/bg.json +0 -6
  83. homeassistant/components/nina/translations/es.json +40 -1
  84. homeassistant/components/nina/translations/sr-Latn.json +28 -0
  85. homeassistant/components/nintendo_parental_controls/translations/bg.json +19 -0
  86. homeassistant/components/nuki/translations/es.json +4 -0
  87. homeassistant/components/octoprint/translations/es.json +16 -0
  88. homeassistant/components/oralb/translations/es.json +1 -0
  89. homeassistant/components/overkiz/translations/lt.json +2 -1
  90. homeassistant/components/plugwise/climate.py +86 -26
  91. homeassistant/components/plugwise/manifest.json +1 -1
  92. homeassistant/components/plugwise/strings.json +3 -0
  93. homeassistant/components/plugwise/translations/de.json +3 -0
  94. homeassistant/components/plugwise/translations/en.json +3 -0
  95. homeassistant/components/plugwise/translations/sk.json +3 -0
  96. homeassistant/components/portainer/translations/bg.json +8 -1
  97. homeassistant/components/portainer/translations/sr-Latn.json +3 -1
  98. homeassistant/components/probe_plus/translations/es.json +5 -0
  99. homeassistant/components/ps4/translations/es.json +9 -1
  100. homeassistant/components/reolink/manifest.json +1 -1
  101. homeassistant/components/reolink/translations/cs.json +1 -0
  102. homeassistant/components/reolink/translations/en-GB.json +1 -0
  103. homeassistant/components/reolink/translations/es.json +1 -0
  104. homeassistant/components/reolink/translations/et.json +1 -0
  105. homeassistant/components/reolink/translations/lt.json +1 -0
  106. homeassistant/components/reolink/translations/pl.json +8 -7
  107. homeassistant/components/reolink/translations/sk.json +1 -0
  108. homeassistant/components/ruuvitag_ble/manifest.json +1 -1
  109. homeassistant/components/shelly/translations/bg.json +2 -1
  110. homeassistant/components/shelly/translations/es.json +10 -3
  111. homeassistant/components/slide_local/translations/es.json +1 -1
  112. homeassistant/components/smarttub/manifest.json +1 -1
  113. homeassistant/components/somfy_mylink/translations/es.json +3 -3
  114. homeassistant/components/soundtouch/__init__.py +10 -1
  115. homeassistant/components/sql/translations/es.json +27 -0
  116. homeassistant/components/sql/translations/sr-Latn.json +9 -0
  117. homeassistant/components/squeezebox/translations/es.json +63 -0
  118. homeassistant/components/sunricher_dali_center/translations/bg.json +19 -0
  119. homeassistant/components/switch_as_x/translations/es.json +4 -4
  120. homeassistant/components/system_bridge/translations/es.json +1 -0
  121. homeassistant/components/telegram_bot/translations/bg.json +11 -0
  122. homeassistant/components/telegram_bot/translations/es.json +42 -7
  123. homeassistant/components/template/translations/es.json +11 -3
  124. homeassistant/components/tesla_fleet/manifest.json +1 -1
  125. homeassistant/components/teslemetry/manifest.json +1 -1
  126. homeassistant/components/tessie/manifest.json +1 -1
  127. homeassistant/components/tessie/translations/es.json +3 -0
  128. homeassistant/components/transmission/translations/bg.json +10 -0
  129. homeassistant/components/usb/utils.py +22 -23
  130. homeassistant/components/vesync/humidifier.py +3 -1
  131. homeassistant/components/vesync/strings.json +11 -0
  132. homeassistant/components/vesync/translations/bg.json +11 -0
  133. homeassistant/components/vesync/translations/cs.json +11 -0
  134. homeassistant/components/vesync/translations/de.json +11 -0
  135. homeassistant/components/vesync/translations/en.json +11 -0
  136. homeassistant/components/vesync/translations/es.json +11 -0
  137. homeassistant/components/vesync/translations/et.json +11 -0
  138. homeassistant/components/vesync/translations/he.json +11 -0
  139. homeassistant/components/vesync/translations/lt.json +11 -0
  140. homeassistant/components/vesync/translations/sk.json +11 -0
  141. homeassistant/components/vesync/translations/zh-Hans.json +11 -0
  142. homeassistant/components/vesync/translations/zh-Hant.json +11 -0
  143. homeassistant/components/volvo/translations/bg.json +5 -0
  144. homeassistant/components/volvo/translations/cs.json +5 -0
  145. homeassistant/components/volvo/translations/en-GB.json +5 -0
  146. homeassistant/components/volvo/translations/es.json +11 -0
  147. homeassistant/components/volvo/translations/lt.json +5 -0
  148. homeassistant/components/volvo/translations/sk.json +5 -0
  149. homeassistant/components/whirlpool/translations/bg.json +22 -0
  150. homeassistant/components/whirlpool/translations/es.json +81 -0
  151. homeassistant/components/workday/manifest.json +1 -1
  152. homeassistant/components/xbox/translations/bg.json +36 -0
  153. homeassistant/components/xbox/translations/es.json +21 -0
  154. homeassistant/components/xbox/translations/sr-Latn.json +1 -0
  155. homeassistant/components/yardian/translations/bg.json +7 -0
  156. homeassistant/components/yardian/translations/es.json +16 -0
  157. homeassistant/components/zha/__init__.py +16 -1
  158. homeassistant/components/zha/config_flow.py +156 -46
  159. homeassistant/components/zha/manifest.json +1 -1
  160. homeassistant/components/zha/strings.json +68 -15
  161. homeassistant/components/zha/translations/bg.json +0 -4
  162. homeassistant/components/zha/translations/ca.json +0 -3
  163. homeassistant/components/zha/translations/cs.json +30 -16
  164. homeassistant/components/zha/translations/da.json +0 -3
  165. homeassistant/components/zha/translations/de.json +68 -15
  166. homeassistant/components/zha/translations/el.json +0 -3
  167. homeassistant/components/zha/translations/en-GB.json +0 -18
  168. homeassistant/components/zha/translations/en.json +68 -15
  169. homeassistant/components/zha/translations/es.json +81 -19
  170. homeassistant/components/zha/translations/et.json +30 -16
  171. homeassistant/components/zha/translations/fi.json +0 -3
  172. homeassistant/components/zha/translations/fr.json +0 -18
  173. homeassistant/components/zha/translations/ga.json +0 -3
  174. homeassistant/components/zha/translations/gsw.json +0 -3
  175. homeassistant/components/zha/translations/hu.json +0 -3
  176. homeassistant/components/zha/translations/id.json +0 -3
  177. homeassistant/components/zha/translations/it.json +0 -3
  178. homeassistant/components/zha/translations/ja.json +0 -3
  179. homeassistant/components/zha/translations/ko.json +0 -9
  180. homeassistant/components/zha/translations/lt.json +0 -18
  181. homeassistant/components/zha/translations/nb.json +0 -3
  182. homeassistant/components/zha/translations/nl.json +0 -3
  183. homeassistant/components/zha/translations/pl.json +0 -3
  184. homeassistant/components/zha/translations/pt-BR.json +0 -3
  185. homeassistant/components/zha/translations/pt.json +0 -18
  186. homeassistant/components/zha/translations/ro.json +0 -3
  187. homeassistant/components/zha/translations/ru.json +0 -18
  188. homeassistant/components/zha/translations/sk.json +68 -15
  189. homeassistant/components/zha/translations/sl.json +0 -9
  190. homeassistant/components/zha/translations/sr-Latn.json +0 -14
  191. homeassistant/components/zha/translations/sv.json +0 -4
  192. homeassistant/components/zha/translations/tr.json +0 -3
  193. homeassistant/components/zha/translations/uk.json +0 -3
  194. homeassistant/components/zha/translations/zh-Hans.json +30 -16
  195. homeassistant/components/zha/translations/zh-Hant.json +30 -16
  196. homeassistant/components/zwave_js/translations/es.json +3 -0
  197. homeassistant/const.py +1 -1
  198. homeassistant/generated/integrations.json +0 -5
  199. homeassistant/package_constraints.txt +1 -1
  200. homeassistant/util/language.py +17 -7
  201. {homeassistant-2025.11.0b2.dist-info → homeassistant-2025.11.0b5.dist-info}/METADATA +1 -1
  202. {homeassistant-2025.11.0b2.dist-info → homeassistant-2025.11.0b5.dist-info}/RECORD +207 -204
  203. homeassistant/components/enmax/__init__.py +0 -1
  204. homeassistant/components/enmax/manifest.json +0 -6
  205. {homeassistant-2025.11.0b2.dist-info → homeassistant-2025.11.0b5.dist-info}/WHEEL +0 -0
  206. {homeassistant-2025.11.0b2.dist-info → homeassistant-2025.11.0b5.dist-info}/entry_points.txt +0 -0
  207. {homeassistant-2025.11.0b2.dist-info → homeassistant-2025.11.0b5.dist-info}/licenses/LICENSE.md +0 -0
  208. {homeassistant-2025.11.0b2.dist-info → homeassistant-2025.11.0b5.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  209. {homeassistant-2025.11.0b2.dist-info → homeassistant-2025.11.0b5.dist-info}/top_level.txt +0 -0
@@ -654,8 +654,8 @@
654
654
  "animal_type": {
655
655
  "name": "Typ zwierz\u0119cia",
656
656
  "state": {
657
- "cat": "Kot",
658
- "dog": "Pies"
657
+ "cat": "kot",
658
+ "dog": "pies"
659
659
  }
660
660
  },
661
661
  "battery_state": {
@@ -686,8 +686,8 @@
686
686
  "person_type": {
687
687
  "name": "Typ osoby",
688
688
  "state": {
689
- "man": "M\u0119\u017cczyzna",
690
- "woman": "Kobieta"
689
+ "man": "m\u0119\u017cczyzna",
690
+ "woman": "kobieta"
691
691
  }
692
692
  },
693
693
  "ptz_pan_position": {
@@ -702,9 +702,10 @@
702
702
  "vehicle_type": {
703
703
  "name": "Typ pojazdu",
704
704
  "state": {
705
- "motorcycle": "Motocykl",
706
- "pickup_truck": "Pickup",
707
- "sedan": "Sedan",
705
+ "bus": "autobus",
706
+ "motorcycle": "motocykl",
707
+ "pickup_truck": "pickup",
708
+ "sedan": "sedan",
708
709
  "suv": "SUV"
709
710
  }
710
711
  },
@@ -835,6 +835,7 @@
835
835
  "vehicle_type": {
836
836
  "name": "Typ vozidla",
837
837
  "state": {
838
+ "bus": "Autobus",
838
839
  "motorcycle": "Motocykel",
839
840
  "pickup_truck": "N\u00e1kladn\u00e9 vozidlo Pickup",
840
841
  "sedan": "Sedan",
@@ -16,5 +16,5 @@
16
16
  "dependencies": ["bluetooth_adapters"],
17
17
  "documentation": "https://www.home-assistant.io/integrations/ruuvitag_ble",
18
18
  "iot_class": "local_push",
19
- "requirements": ["ruuvitag-ble==0.2.1"]
19
+ "requirements": ["ruuvitag-ble==0.3.0"]
20
20
  }
@@ -64,7 +64,8 @@
64
64
  "button1": "\u041f\u044a\u0440\u0432\u0438 \u0431\u0443\u0442\u043e\u043d",
65
65
  "button2": "\u0412\u0442\u043e\u0440\u0438 \u0431\u0443\u0442\u043e\u043d",
66
66
  "button3": "\u0422\u0440\u0435\u0442\u0438 \u0431\u0443\u0442\u043e\u043d",
67
- "button4": "\u0427\u0435\u0442\u0432\u044a\u0440\u0442\u0438 \u0431\u0443\u0442\u043e\u043d"
67
+ "button4": "\u0427\u0435\u0442\u0432\u044a\u0440\u0442\u0438 \u0431\u0443\u0442\u043e\u043d",
68
+ "button5": "\u041f\u0435\u0442\u0438 \u0431\u0443\u0442\u043e\u043d"
68
69
  },
69
70
  "trigger_type": {
70
71
  "double": "{subtype} \u0434\u0432\u0443\u043a\u0440\u0430\u0442\u043d\u043e \u0449\u0440\u0430\u043a\u0432\u0430\u043d\u0435",
@@ -110,11 +110,15 @@
110
110
  "state": {
111
111
  "btn_down": "Bot\u00f3n abajo",
112
112
  "btn_up": "Bot\u00f3n arriba",
113
+ "double": "Pulsaci\u00f3n doble",
113
114
  "double_push": "Pulsaci\u00f3n doble",
115
+ "long": "Pulsaci\u00f3n larga",
114
116
  "long_push": "Pulsaci\u00f3n larga",
115
117
  "long_single": "Pulsaci\u00f3n larga y a continuaci\u00f3n pulsaci\u00f3n corta",
118
+ "single": "Pulsaci\u00f3n simple",
116
119
  "single_long": "Pulsaci\u00f3n corta y a continuaci\u00f3n pulsaci\u00f3n larga",
117
120
  "single_push": "Pulsaci\u00f3n simple",
121
+ "triple": "Pulsaci\u00f3n triple",
118
122
  "triple_push": "Pulsaci\u00f3n triple"
119
123
  }
120
124
  }
@@ -249,7 +253,8 @@
249
253
  },
250
254
  "step": {
251
255
  "confirm": {
252
- "description": "Tu dispositivo Shelly {device_name} con direcci\u00f3n IP {ip_address} ejecuta el firmware {firmware} y funciona como esc\u00e1ner BLE en modo activo. Esta versi\u00f3n de firmware no es compatible con el esc\u00e1ner BLE en modo activo. \n \nSelecciona el bot\u00f3n **Enviar** para iniciar la actualizaci\u00f3n OTA a la \u00faltima versi\u00f3n estable del firmware."
256
+ "description": "Tu dispositivo Shelly {device_name} con direcci\u00f3n IP {ip_address} ejecuta el firmware {firmware} y funciona como esc\u00e1ner BLE en modo activo. Esta versi\u00f3n de firmware no es compatible con el esc\u00e1ner BLE en modo activo. \n \nSelecciona el bot\u00f3n **Enviar** para iniciar la actualizaci\u00f3n OTA a la \u00faltima versi\u00f3n estable del firmware.",
257
+ "title": "{device_name} est\u00e1 ejecutando un firmware no compatible"
253
258
  }
254
259
  }
255
260
  },
@@ -263,7 +268,8 @@
263
268
  },
264
269
  "step": {
265
270
  "confirm": {
266
- "description": "Tu dispositivo Shelly {device_name} con direcci\u00f3n IP {ip_address} ejecuta el firmware {firmware}. Esta versi\u00f3n de firmware no ser\u00e1 compatible con la integraci\u00f3n de Shelly a partir de Home Assistant {ha_version}. \n \nSelecciona el bot\u00f3n **Enviar** para iniciar la actualizaci\u00f3n OTA a la \u00faltima versi\u00f3n estable del firmware."
271
+ "description": "Tu dispositivo Shelly {device_name} con direcci\u00f3n IP {ip_address} ejecuta el firmware {firmware}. Esta versi\u00f3n de firmware no ser\u00e1 compatible con la integraci\u00f3n de Shelly a partir de Home Assistant {ha_version}. \n \nSelecciona el bot\u00f3n **Enviar** para iniciar la actualizaci\u00f3n OTA a la \u00faltima versi\u00f3n estable del firmware.",
272
+ "title": "{device_name} est\u00e1 ejecutando un firmware desactualizado"
267
273
  }
268
274
  }
269
275
  },
@@ -280,7 +286,8 @@
280
286
  },
281
287
  "step": {
282
288
  "confirm": {
283
- "description": "Tu dispositivo Shelly {device_name} con direcci\u00f3n IP {ip_address} es un dispositivo que no est\u00e1 inactivo y el WebSocket de salida debe estar deshabilitado en su configuraci\u00f3n. \n \nSelecciona el bot\u00f3n **Enviar** para deshabilitar el WebSocket de salida."
289
+ "description": "Tu dispositivo Shelly {device_name} con direcci\u00f3n IP {ip_address} es un dispositivo que no est\u00e1 inactivo y el WebSocket de salida debe estar deshabilitado en su configuraci\u00f3n. \n \nSelecciona el bot\u00f3n **Enviar** para deshabilitar el WebSocket de salida.",
290
+ "title": "El WebSocket de salida est\u00e1 habilitado para {device_name}"
284
291
  }
285
292
  }
286
293
  },
@@ -70,7 +70,7 @@
70
70
  "invert_position": "Invertir posici\u00f3n"
71
71
  },
72
72
  "data_description": {
73
- "invert_position": "Invierte la posici\u00f3n de la cubierta Slide."
73
+ "invert_position": "Invierte la posici\u00f3n de la persiana Slide."
74
74
  },
75
75
  "description": "Volver a configurar el dispositivo Slide",
76
76
  "title": "Configurar Slide"
@@ -6,5 +6,5 @@
6
6
  "documentation": "https://www.home-assistant.io/integrations/smarttub",
7
7
  "iot_class": "cloud_polling",
8
8
  "loggers": ["smarttub"],
9
- "requirements": ["python-smarttub==0.0.44"]
9
+ "requirements": ["python-smarttub==0.0.45"]
10
10
  }
@@ -30,16 +30,16 @@
30
30
  "step": {
31
31
  "init": {
32
32
  "data": {
33
- "target_id": "Configurar opciones para una cubierta."
33
+ "target_id": "Configurar opciones para una persiana."
34
34
  },
35
35
  "title": "Configurar las opciones de MyLink"
36
36
  },
37
37
  "target_config": {
38
38
  "data": {
39
- "reverse": "La cubierta est\u00e1 invertida"
39
+ "reverse": "La persiana est\u00e1 invertida"
40
40
  },
41
41
  "description": "Configurar opciones para `{target_name}`",
42
- "title": "Configurar la cubierta de MyLink"
42
+ "title": "Configurar la persiana de MyLink"
43
43
  }
44
44
  }
45
45
  }
@@ -4,11 +4,13 @@ import logging
4
4
 
5
5
  from libsoundtouch import soundtouch_device
6
6
  from libsoundtouch.device import SoundTouchDevice
7
+ import requests
7
8
  import voluptuous as vol
8
9
 
9
10
  from homeassistant.config_entries import ConfigEntry
10
11
  from homeassistant.const import CONF_HOST, Platform
11
12
  from homeassistant.core import HomeAssistant, ServiceCall
13
+ from homeassistant.exceptions import ConfigEntryNotReady
12
14
  from homeassistant.helpers import config_validation as cv
13
15
  from homeassistant.helpers.typing import ConfigType
14
16
 
@@ -130,7 +132,14 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
130
132
 
131
133
  async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
132
134
  """Set up Bose SoundTouch from a config entry."""
133
- device = await hass.async_add_executor_job(soundtouch_device, entry.data[CONF_HOST])
135
+ try:
136
+ device = await hass.async_add_executor_job(
137
+ soundtouch_device, entry.data[CONF_HOST]
138
+ )
139
+ except requests.exceptions.ConnectionError as err:
140
+ raise ConfigEntryNotReady(
141
+ f"Unable to connect to SoundTouch device at {entry.data[CONF_HOST]}"
142
+ ) from err
134
143
 
135
144
  hass.data.setdefault(DOMAIN, {})[entry.entry_id] = SoundTouchData(device)
136
145
 
@@ -51,6 +51,17 @@
51
51
  }
52
52
  }
53
53
  },
54
+ "exceptions": {
55
+ "db_connection_failed": {
56
+ "message": "No se pudo conectar a la base de datos: {db_url}"
57
+ },
58
+ "query_execution_error": {
59
+ "message": "Se produjo un error al ejecutar la consulta: {error}"
60
+ },
61
+ "query_not_allowed": {
62
+ "message": "La consulta proporcionada no est\u00e1 permitida: {error}"
63
+ }
64
+ },
54
65
  "issues": {
55
66
  "entity_id_query_does_full_table_scan": {
56
67
  "description": "La consulta `{query}` contiene la palabra clave `entity_id` pero no hace referencia a la tabla `states_meta`. Esto provocar\u00e1 una exploraci\u00f3n completa de la tabla y la inestabilidad de la base de datos. Por favor, consulta la documentaci\u00f3n y utiliza `states_meta.entity_id` en su lugar.",
@@ -171,5 +182,21 @@
171
182
  "total_increasing": "Aumento total"
172
183
  }
173
184
  }
185
+ },
186
+ "services": {
187
+ "query": {
188
+ "description": "Ejecuta una consulta SQL y devuelve el resultado.",
189
+ "fields": {
190
+ "db_url": {
191
+ "description": "La URL de la base de datos a la que conectarse. Si no se proporciona, se utilizar\u00e1 la base de datos del grabador predeterminada de Home Assistant.",
192
+ "name": "URL de la base de datos"
193
+ },
194
+ "query": {
195
+ "description": "La consulta SELECT a ejecutar.",
196
+ "name": "Consulta"
197
+ }
198
+ },
199
+ "name": "Consulta"
200
+ }
174
201
  }
175
202
  }
@@ -30,5 +30,14 @@
30
30
  "measurement_angle": "Ugao merenja"
31
31
  }
32
32
  }
33
+ },
34
+ "services": {
35
+ "query": {
36
+ "fields": {
37
+ "query": {
38
+ "name": "Upit"
39
+ }
40
+ }
41
+ }
33
42
  }
34
43
  }
@@ -127,9 +127,21 @@
127
127
  "browse_media_type_not_supported": {
128
128
  "message": "Tipo de medio no admitido: {media_type}."
129
129
  },
130
+ "call_method_failed": {
131
+ "message": "No se pudo llamar al m\u00e9todo {command}."
132
+ },
133
+ "call_query_failed": {
134
+ "message": "No se pudo consultar el m\u00e9todo {command}."
135
+ },
136
+ "clear_playlist_failed": {
137
+ "message": "No se pudo borrar la lista de reproducci\u00f3n."
138
+ },
130
139
  "coordinator_no_data": {
131
140
  "message": "No hay datos de la encuesta de estado."
132
141
  },
142
+ "generate_image_url_failed": {
143
+ "message": "No se pudo generar la URL de la imagen para la pista con ID {track_id}."
144
+ },
133
145
  "init_auth_failed": {
134
146
  "message": "La autenticaci\u00f3n fall\u00f3 con {host}."
135
147
  },
@@ -160,6 +172,57 @@
160
172
  "join_cannot_join_unknown_player": {
161
173
  "message": "No se pudo unir el reproductor desconocido {other_player_entity_id}."
162
174
  },
175
+ "load_playlist_failed": {
176
+ "message": "No se pudo cargar la lista de reproducci\u00f3n con el comando {cmd}."
177
+ },
178
+ "load_url_failed": {
179
+ "message": "No se pudo cargar la URL de medios {media_id} con el comando {cmd}."
180
+ },
181
+ "next_track_failed": {
182
+ "message": "No se pudo pasar a la siguiente pista."
183
+ },
184
+ "pause_failed": {
185
+ "message": "No se pudo pausar la reproducci\u00f3n."
186
+ },
187
+ "play_failed": {
188
+ "message": "No se pudo iniciar la reproducci\u00f3n."
189
+ },
190
+ "play_pause_failed": {
191
+ "message": "No se pudo alternar entre reproducci\u00f3n y pausa."
192
+ },
193
+ "press_failed": {
194
+ "message": "No se pudo ejecutar la acci\u00f3n del bot\u00f3n {action}."
195
+ },
196
+ "previous_track_failed": {
197
+ "message": "No se pudo volver a la pista anterior."
198
+ },
199
+ "seek_failed": {
200
+ "message": "No se pudo buscar la posici\u00f3n {position} segundos."
201
+ },
202
+ "set_mute_failed": {
203
+ "message": "No se pudo silenciar/activar el sonido del reproductor."
204
+ },
205
+ "set_repeat_failed": {
206
+ "message": "No se pudo establecer el modo de repetici\u00f3n."
207
+ },
208
+ "set_shuffle_failed": {
209
+ "message": "No se pudo establecer el modo aleatorio."
210
+ },
211
+ "set_volume_failed": {
212
+ "message": "No se pudo establecer el volumen al {volume}%."
213
+ },
214
+ "stop_failed": {
215
+ "message": "No se pudo detener la reproducci\u00f3n."
216
+ },
217
+ "turn_off_failed": {
218
+ "message": "No se pudo apagar el reproductor."
219
+ },
220
+ "turn_on_failed": {
221
+ "message": "No se pudo encender el reproductor."
222
+ },
223
+ "unjoin_failed": {
224
+ "message": "No se pudo desincronizar el reproductor."
225
+ },
163
226
  "update_restart_failed": {
164
227
  "message": "Error al intentar actualizar los complementos LMS: Error al reiniciar."
165
228
  }
@@ -0,0 +1,19 @@
1
+ {
2
+ "config": {
3
+ "abort": {
4
+ "already_configured": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u043e"
5
+ },
6
+ "error": {
7
+ "cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",
8
+ "unknown": "\u041d\u0435\u043e\u0447\u0430\u043a\u0432\u0430\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430"
9
+ },
10
+ "step": {
11
+ "select_gateway": {
12
+ "data": {
13
+ "selected_gateway": "\u0428\u043b\u044e\u0437"
14
+ },
15
+ "description": "\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0448\u043b\u044e\u0437\u0430, \u043a\u043e\u0439\u0442\u043e \u0434\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u0442\u0435."
16
+ }
17
+ }
18
+ }
19
+ }
@@ -8,9 +8,9 @@
8
8
  "target_domain": "Nuevo tipo"
9
9
  },
10
10
  "data_description": {
11
- "invert": "Estado invertido, solo compatible con cubierta, cerradura y v\u00e1lvula."
11
+ "invert": "Estado invertido, solo compatible con persiana, cerradura y v\u00e1lvula."
12
12
  },
13
- "description": "Elige un interruptor que desees que aparezca en Home Assistant como luz, cubierta o cualquier otra cosa. El interruptor original se ocultar\u00e1."
13
+ "description": "Elige un interruptor que desees que aparezca en Home Assistant como luz, persiana o cualquier otra cosa. El interruptor original se ocultar\u00e1."
14
14
  }
15
15
  }
16
16
  },
@@ -21,7 +21,7 @@
21
21
  "invert": "Invertir estado"
22
22
  },
23
23
  "data_description": {
24
- "invert": "Estado invertido, solo compatible con cubierta, cerradura y v\u00e1lvula."
24
+ "invert": "Estado invertido, solo compatible con persiana, cerradura y v\u00e1lvula."
25
25
  }
26
26
  }
27
27
  }
@@ -29,7 +29,7 @@
29
29
  "selector": {
30
30
  "target_domain": {
31
31
  "options": {
32
- "cover": "Cubierta",
32
+ "cover": "Persiana",
33
33
  "fan": "Ventilador",
34
34
  "light": "Luz",
35
35
  "lock": "Cerradura",
@@ -206,6 +206,7 @@
206
206
  "name": "Puente"
207
207
  },
208
208
  "key": {
209
+ "description": "Tecla para pulsar. Lista disponible aqu\u00ed: {syntax_keys_documentation_url}.",
209
210
  "name": "Tecla"
210
211
  }
211
212
  },
@@ -56,6 +56,17 @@
56
56
  }
57
57
  }
58
58
  },
59
+ "entity": {
60
+ "event": {
61
+ "update_event": {
62
+ "state_attributes": {
63
+ "id": {
64
+ "name": "ID"
65
+ }
66
+ }
67
+ }
68
+ }
69
+ },
59
70
  "exceptions": {
60
71
  "failed_to_load_file": {
61
72
  "message": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u0430: {error}"
@@ -447,7 +447,12 @@
447
447
  "name": "Verificar SSL"
448
448
  }
449
449
  },
450
- "name": "Editar medios del mensaje"
450
+ "name": "Editar medios del mensaje",
451
+ "sections": {
452
+ "url_options": {
453
+ "name": "Opciones de URL"
454
+ }
455
+ }
451
456
  },
452
457
  "edit_replymarkup": {
453
458
  "description": "Edita el teclado en l\u00ednea de un mensaje enviado previamente.",
@@ -557,7 +562,12 @@
557
562
  "name": "Verificar SSL"
558
563
  }
559
564
  },
560
- "name": "Enviar animaci\u00f3n"
565
+ "name": "Enviar animaci\u00f3n",
566
+ "sections": {
567
+ "url_options": {
568
+ "name": "Opciones de URL"
569
+ }
570
+ }
561
571
  },
562
572
  "send_chat_action": {
563
573
  "description": "Env\u00eda una acci\u00f3n de chat.",
@@ -653,7 +663,12 @@
653
663
  "name": "Verificar SSL"
654
664
  }
655
665
  },
656
- "name": "Enviar documento"
666
+ "name": "Enviar documento",
667
+ "sections": {
668
+ "url_options": {
669
+ "name": "Opciones de URL"
670
+ }
671
+ }
657
672
  },
658
673
  "send_location": {
659
674
  "description": "Env\u00eda una ubicaci\u00f3n.",
@@ -835,7 +850,12 @@
835
850
  "name": "Verificar SSL"
836
851
  }
837
852
  },
838
- "name": "Enviar foto"
853
+ "name": "Enviar foto",
854
+ "sections": {
855
+ "url_options": {
856
+ "name": "Opciones de URL"
857
+ }
858
+ }
839
859
  },
840
860
  "send_poll": {
841
861
  "description": "Env\u00eda una encuesta.",
@@ -955,7 +975,12 @@
955
975
  "name": "Verificar SSL"
956
976
  }
957
977
  },
958
- "name": "Enviar sticker"
978
+ "name": "Enviar sticker",
979
+ "sections": {
980
+ "url_options": {
981
+ "name": "Opciones de URL"
982
+ }
983
+ }
959
984
  },
960
985
  "send_video": {
961
986
  "description": "Env\u00eda un v\u00eddeo.",
@@ -1029,7 +1054,12 @@
1029
1054
  "name": "Verificar SSL"
1030
1055
  }
1031
1056
  },
1032
- "name": "Enviar v\u00eddeo"
1057
+ "name": "Enviar v\u00eddeo",
1058
+ "sections": {
1059
+ "url_options": {
1060
+ "name": "Opciones de URL"
1061
+ }
1062
+ }
1033
1063
  },
1034
1064
  "send_voice": {
1035
1065
  "description": "Env\u00eda un mensaje de voz.",
@@ -1099,7 +1129,12 @@
1099
1129
  "name": "Verificar SSL"
1100
1130
  }
1101
1131
  },
1102
- "name": "Enviar voz"
1132
+ "name": "Enviar voz",
1133
+ "sections": {
1134
+ "url_options": {
1135
+ "name": "Opciones de URL"
1136
+ }
1137
+ }
1103
1138
  },
1104
1139
  "set_message_reaction": {
1105
1140
  "description": "Establece la reacci\u00f3n del bot ante un mensaje determinado.",
@@ -119,7 +119,7 @@
119
119
  "device_id": "Selecciona un dispositivo para vincularlo a esta entidad.",
120
120
  "open_cover": "Define acciones a ejecutar cuando se abre la persiana.",
121
121
  "position": "Define una plantilla para obtener la posici\u00f3n de la persiana. Los valores son n\u00fameros entre 0 (cerrado) y 100 (abierto).",
122
- "set_cover_position": "Define las acciones que se ejecutan cuando se asigna a la cubierta el comando `set_cover_position`. Recibe la variable `position`.",
122
+ "set_cover_position": "Define las acciones que se ejecutan cuando se asigna a la persiana el comando `set_cover_position`. Recibe la variable `position`.",
123
123
  "state": "Define una plantilla para obtener el estado de la persiana. Los valores de salida v\u00e1lidos de la plantilla son `open`, `opening`, `closing` y `closed`, que se asignan directamente a los estados correspondientes. Si se especifican tanto un estado como una posici\u00f3n, solo `opening` y `closing` se configuran desde la plantilla de estados.",
124
124
  "stop_cover": "Define las acciones a ejecutar cuando se detiene la persiana."
125
125
  },
@@ -452,7 +452,7 @@
452
452
  "alarm_control_panel": "Panel de control de alarma",
453
453
  "binary_sensor": "Sensor binario",
454
454
  "button": "Bot\u00f3n",
455
- "cover": "Cubierta",
455
+ "cover": "Persiana",
456
456
  "event": "Evento",
457
457
  "fan": "Ventilador",
458
458
  "image": "Imagen",
@@ -516,6 +516,14 @@
516
516
  }
517
517
  },
518
518
  "issues": {
519
+ "config_format_actions": {
520
+ "description": "Hay una opci\u00f3n de acciones en la configuraci\u00f3n de la plantilla que no se empareja con una opci\u00f3n de activaci\u00f3n. Esto ser\u00e1 un error de validaci\u00f3n de configuraci\u00f3n en 2026.5.\n\nPor favor, a\u00f1ade un disparador a la configuraci\u00f3n o elimina la opci\u00f3n de acciones de la configuraci\u00f3n.\n\n```\n{config}\n```",
521
+ "title": "La opci\u00f3n de acciones de plantilla requiere un activador."
522
+ },
523
+ "config_format_triggers": {
524
+ "description": "Una configuraci\u00f3n de plantilla de disparador requiere un disparador y al menos un dominio al definir una entidad. Esto generar\u00e1 un error de validaci\u00f3n de configuraci\u00f3n en Home Assistant Core 2026.5. \n \nPor favor, elimina el disparador hu\u00e9rfano de la configuraci\u00f3n. \n \n ``` \n {config} \n ```",
525
+ "title": "Configuraci\u00f3n de plantilla incompleta"
526
+ },
519
527
  "deprecated_battery_level": {
520
528
  "description": "Las opciones de la plantilla de aspiradora `battery_level` y `battery_level_template` se eliminar\u00e1n en 2026.8. \n \nPor favor, elimina la opci\u00f3n `battery_level` o `battery_level_template` de la configuraci\u00f3n YAML para {entity_id} ({entity_name}).",
521
529
  "title": "Opci\u00f3n de nivel de bater\u00eda obsoleta en {entity_name}"
@@ -622,7 +630,7 @@
622
630
  "device_id": "Selecciona un dispositivo para vincularlo a esta entidad.",
623
631
  "open_cover": "Define acciones a ejecutar cuando se abre la persiana.",
624
632
  "position": "Define una plantilla para obtener la posici\u00f3n de la persiana. Los valores son n\u00fameros entre 0 (cerrado) y 100 (abierto).",
625
- "set_cover_position": "Define las acciones que se ejecutan cuando se asigna a la cubierta el comando `set_cover_position`. Recibe la variable `position`.",
633
+ "set_cover_position": "Define las acciones que se ejecutan cuando se asigna a la persiana el comando `set_cover_position`. Recibe la variable `position`.",
626
634
  "state": "Define una plantilla para obtener el estado de la persiana. Los valores de salida v\u00e1lidos de la plantilla son `open`, `opening`, `closing` y `closed`, que se asignan directamente a los estados correspondientes. Si se especifican tanto un estado como una posici\u00f3n, solo `opening` y `closing` se configuran desde la plantilla de estados.",
627
635
  "stop_cover": "Define las acciones a ejecutar cuando se detiene la persiana."
628
636
  },
@@ -7,5 +7,5 @@
7
7
  "documentation": "https://www.home-assistant.io/integrations/tesla_fleet",
8
8
  "iot_class": "cloud_polling",
9
9
  "loggers": ["tesla-fleet-api"],
10
- "requirements": ["tesla-fleet-api==1.2.3"]
10
+ "requirements": ["tesla-fleet-api==1.2.5"]
11
11
  }
@@ -6,5 +6,5 @@
6
6
  "documentation": "https://www.home-assistant.io/integrations/teslemetry",
7
7
  "iot_class": "cloud_polling",
8
8
  "loggers": ["tesla-fleet-api"],
9
- "requirements": ["tesla-fleet-api==1.2.3", "teslemetry-stream==0.7.10"]
9
+ "requirements": ["tesla-fleet-api==1.2.5", "teslemetry-stream==0.7.10"]
10
10
  }
@@ -6,5 +6,5 @@
6
6
  "documentation": "https://www.home-assistant.io/integrations/tessie",
7
7
  "iot_class": "cloud_polling",
8
8
  "loggers": ["tessie", "tesla-fleet-api"],
9
- "requirements": ["tessie-api==0.1.1", "tesla-fleet-api==1.2.3"]
9
+ "requirements": ["tessie-api==0.1.1", "tesla-fleet-api==1.2.5"]
10
10
  }
@@ -517,6 +517,9 @@
517
517
  "command_failed": {
518
518
  "message": "El comando fall\u00f3, {message}"
519
519
  },
520
+ "cpd_enabled": {
521
+ "message": "La detecci\u00f3n de presencia infantil ha bloqueado el comando para retirar peso de los asientos."
522
+ },
520
523
  "incorrect_pin": {
521
524
  "message": "PIN incorrecto para {name}."
522
525
  },
@@ -68,6 +68,16 @@
68
68
  }
69
69
  }
70
70
  },
71
+ "selector": {
72
+ "order": {
73
+ "options": {
74
+ "best_ratio_first": "\u041d\u0430\u0439-\u0434\u043e\u0431\u0440\u043e \u0441\u044a\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043f\u044a\u0440\u0432\u043e",
75
+ "newest_first": "\u041d\u0430\u0439-\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u044a\u0440\u0432\u043e",
76
+ "oldest_first": "\u041d\u0430\u0439-\u0441\u0442\u0430\u0440\u0438\u0442\u0435 \u043f\u044a\u0440\u0432\u043e",
77
+ "worst_ratio_first": "\u041d\u0430\u0439-\u043b\u043e\u0448\u043e\u0442\u043e \u0441\u044a\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043f\u044a\u0440\u0432\u043e"
78
+ }
79
+ }
80
+ },
71
81
  "services": {
72
82
  "add_torrent": {
73
83
  "fields": {