homeassistant 2025.6.0b9__py3-none-any.whl → 2025.6.1__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/acaia/translations/id.json +25 -1
  2. homeassistant/components/accuweather/translations/es.json +19 -6
  3. homeassistant/components/airzone/translations/es.json +3 -0
  4. homeassistant/components/airzone_cloud/translations/es.json +1 -0
  5. homeassistant/components/alexa_devices/manifest.json +1 -1
  6. homeassistant/components/alexa_devices/notify.py +4 -0
  7. homeassistant/components/alexa_devices/translations/bg.json +47 -0
  8. homeassistant/components/alexa_devices/translations/cs.json +60 -0
  9. homeassistant/components/alexa_devices/translations/el.json +60 -0
  10. homeassistant/components/alexa_devices/translations/es.json +60 -0
  11. homeassistant/components/alexa_devices/translations/et.json +60 -0
  12. homeassistant/components/alexa_devices/translations/ga.json +47 -0
  13. homeassistant/components/alexa_devices/translations/he.json +24 -0
  14. homeassistant/components/alexa_devices/translations/lt.json +60 -0
  15. homeassistant/components/alexa_devices/translations/nl.json +48 -0
  16. homeassistant/components/alexa_devices/translations/pl.json +60 -0
  17. homeassistant/components/alexa_devices/translations/sk.json +60 -0
  18. homeassistant/components/alexa_devices/translations/zh-Hans.json +60 -0
  19. homeassistant/components/androidtv_remote/translations/es.json +5 -0
  20. homeassistant/components/apple_tv/translations/sl.json +1 -0
  21. homeassistant/components/apsystems/translations/es.json +3 -0
  22. homeassistant/components/aruba/device_tracker.py +1 -1
  23. homeassistant/components/baf/translations/es.json +11 -0
  24. homeassistant/components/balboa/translations/el.json +13 -1
  25. homeassistant/components/bluetooth/translations/ga.json +7 -0
  26. homeassistant/components/bosch_alarm/translations/es.json +26 -1
  27. homeassistant/components/bosch_shc/translations/el.json +3 -0
  28. homeassistant/components/brother/translations/el.json +6 -0
  29. homeassistant/components/calendar/translations/es.json +1 -0
  30. homeassistant/components/climate/translations/es.json +3 -0
  31. homeassistant/components/climate/translations/ga.json +1 -0
  32. homeassistant/components/cloudflare/translations/sl.json +3 -1
  33. homeassistant/components/comelit/translations/es.json +3 -0
  34. homeassistant/components/counter/translations/pl.json +1 -0
  35. homeassistant/components/demo/translations/es.json +11 -0
  36. homeassistant/components/dialogflow/translations/es.json +5 -1
  37. homeassistant/components/dnsip/manifest.json +1 -1
  38. homeassistant/components/dsmr/translations/es.json +5 -1
  39. homeassistant/components/ecobee/translations/es.json +17 -0
  40. homeassistant/components/ecobee/translations/pl.json +8 -0
  41. homeassistant/components/ecovacs/translations/es.json +1 -0
  42. homeassistant/components/eheimdigital/translations/es.json +16 -0
  43. homeassistant/components/electric_kiwi/translations/ga.json +1 -0
  44. homeassistant/components/elmax/translations/es.json +9 -2
  45. homeassistant/components/emulated_roku/translations/fr.json +6 -1
  46. homeassistant/components/esphome/translations/es.json +54 -5
  47. homeassistant/components/faa_delays/translations/el.json +8 -0
  48. homeassistant/components/fan/translations/el.json +5 -0
  49. homeassistant/components/filter/translations/es.json +3 -0
  50. homeassistant/components/fireservicerota/translations/es.json +2 -1
  51. homeassistant/components/fitbit/translations/ga.json +1 -0
  52. homeassistant/components/flipr/translations/es.json +3 -0
  53. homeassistant/components/fronius/translations/el.json +18 -3
  54. homeassistant/components/frontend/manifest.json +1 -1
  55. homeassistant/components/frontier_silicon/translations/el.json +2 -1
  56. homeassistant/components/fyta/translations/es.json +3 -0
  57. homeassistant/components/geocaching/translations/ga.json +1 -0
  58. homeassistant/components/goodwe/translations/es.json +1 -0
  59. homeassistant/components/google/translations/es.json +1 -0
  60. homeassistant/components/google_assistant_sdk/translations/lt.json +5 -0
  61. homeassistant/components/google_drive/translations/ga.json +1 -0
  62. homeassistant/components/google_mail/translations/ga.json +1 -0
  63. homeassistant/components/google_photos/translations/ga.json +1 -0
  64. homeassistant/components/google_sheets/translations/ga.json +1 -0
  65. homeassistant/components/google_tasks/translations/ga.json +1 -0
  66. homeassistant/components/gree/translations/el.json +9 -0
  67. homeassistant/components/group/translations/sl.json +2 -1
  68. homeassistant/components/heos/translations/es.json +8 -2
  69. homeassistant/components/hive/translations/es.json +1 -0
  70. homeassistant/components/home_connect/translations/el.json +6 -0
  71. homeassistant/components/home_connect/translations/es.json +11 -0
  72. homeassistant/components/home_connect/translations/fr.json +3 -0
  73. homeassistant/components/home_connect/translations/lt.json +6 -0
  74. homeassistant/components/homeassistant/translations/cs.json +4 -0
  75. homeassistant/components/homeassistant/translations/de.json +4 -0
  76. homeassistant/components/homeassistant/translations/el.json +4 -0
  77. homeassistant/components/homeassistant/translations/es.json +4 -0
  78. homeassistant/components/homeassistant/translations/et.json +4 -0
  79. homeassistant/components/homeassistant/translations/fr.json +6 -0
  80. homeassistant/components/homeassistant/translations/ga.json +4 -0
  81. homeassistant/components/homeassistant/translations/he.json +6 -0
  82. homeassistant/components/homeassistant/translations/id.json +6 -0
  83. homeassistant/components/homeassistant/translations/lt.json +6 -0
  84. homeassistant/components/homeassistant/translations/sk.json +4 -0
  85. homeassistant/components/homeassistant/translations/zh-Hans.json +4 -0
  86. homeassistant/components/homee/translations/el.json +5 -0
  87. homeassistant/components/homee/translations/es.json +18 -0
  88. homeassistant/components/homematicip_cloud/hap.py +19 -38
  89. homeassistant/components/homematicip_cloud/manifest.json +1 -1
  90. homeassistant/components/homewizard/translations/el.json +3 -1
  91. homeassistant/components/homewizard/translations/ga.json +13 -0
  92. homeassistant/components/huawei_lte/translations/es.json +12 -1
  93. homeassistant/components/huisbaasje/translations/es.json +12 -0
  94. homeassistant/components/hyperion/translations/ga.json +1 -0
  95. homeassistant/components/ifttt/translations/es.json +6 -1
  96. homeassistant/components/imeon_inverter/translations/es.json +85 -0
  97. homeassistant/components/inkbird/translations/es.json +5 -0
  98. homeassistant/components/input_datetime/translations/lt.json +4 -4
  99. homeassistant/components/input_text/translations/lt.json +2 -2
  100. homeassistant/components/intellifire/translations/es.json +8 -1
  101. homeassistant/components/iotty/translations/fr.json +1 -0
  102. homeassistant/components/iotty/translations/ga.json +1 -0
  103. homeassistant/components/iron_os/translations/es.json +6 -0
  104. homeassistant/components/jewish_calendar/manifest.json +1 -1
  105. homeassistant/components/jewish_calendar/sensor.py +3 -7
  106. homeassistant/components/knx/translations/es.json +1 -0
  107. homeassistant/components/kulersky/translations/es.json +16 -0
  108. homeassistant/components/lamarzocco/translations/es.json +5 -1
  109. homeassistant/components/lametric/translations/es.json +6 -1
  110. homeassistant/components/lametric/translations/ga.json +1 -0
  111. homeassistant/components/lawn_mower/translations/es.json +1 -0
  112. homeassistant/components/lg_thinq/translations/es.json +1 -0
  113. homeassistant/components/lifx/manager.py +6 -3
  114. homeassistant/components/light/translations/es.json +10 -0
  115. homeassistant/components/linkplay/manifest.json +1 -1
  116. homeassistant/components/local_calendar/calendar.py +0 -5
  117. homeassistant/components/local_calendar/translations/es.json +3 -0
  118. homeassistant/components/locative/translations/es.json +2 -1
  119. homeassistant/components/logbook/translations/el.json +3 -1
  120. homeassistant/components/lyric/translations/cs.json +6 -0
  121. homeassistant/components/lyric/translations/el.json +6 -0
  122. homeassistant/components/lyric/translations/es.json +6 -0
  123. homeassistant/components/lyric/translations/et.json +6 -0
  124. homeassistant/components/lyric/translations/fr.json +3 -0
  125. homeassistant/components/lyric/translations/ga.json +5 -0
  126. homeassistant/components/lyric/translations/lt.json +6 -0
  127. homeassistant/components/lyric/translations/sk.json +6 -0
  128. homeassistant/components/lyric/translations/zh-Hans.json +6 -0
  129. homeassistant/components/matter/translations/es.json +69 -0
  130. homeassistant/components/mcp/translations/bg.json +0 -3
  131. homeassistant/components/mcp/translations/ca.json +0 -3
  132. homeassistant/components/mcp/translations/cs.json +2 -2
  133. homeassistant/components/mcp/translations/de.json +2 -2
  134. homeassistant/components/mcp/translations/el.json +6 -0
  135. homeassistant/components/mcp/translations/en-GB.json +0 -6
  136. homeassistant/components/mcp/translations/en.json +2 -2
  137. homeassistant/components/mcp/translations/es.json +2 -2
  138. homeassistant/components/mcp/translations/et.json +2 -2
  139. homeassistant/components/mcp/translations/fr.json +2 -2
  140. homeassistant/components/mcp/translations/ga.json +0 -10
  141. homeassistant/components/mcp/translations/he.json +6 -0
  142. homeassistant/components/mcp/translations/hu.json +0 -6
  143. homeassistant/components/mcp/translations/lt.json +2 -2
  144. homeassistant/components/mcp/translations/pt.json +0 -6
  145. homeassistant/components/mcp/translations/ru.json +0 -6
  146. homeassistant/components/mcp/translations/sk.json +2 -2
  147. homeassistant/components/mcp/translations/sv.json +2 -2
  148. homeassistant/components/mcp/translations/zh-Hans.json +2 -2
  149. homeassistant/components/mcp/translations/zh-Hant.json +0 -6
  150. homeassistant/components/media_source/translations/es.json +3 -0
  151. homeassistant/components/microbees/translations/ga.json +1 -0
  152. homeassistant/components/miele/translations/es.json +158 -1
  153. homeassistant/components/miele/translations/lt.json +1 -0
  154. homeassistant/components/modbus/translations/el.json +1 -0
  155. homeassistant/components/monzo/translations/fr.json +1 -0
  156. homeassistant/components/monzo/translations/ga.json +1 -0
  157. homeassistant/components/motionmount/translations/es.json +1 -0
  158. homeassistant/components/mqtt/translations/es.json +11 -4
  159. homeassistant/components/myuplink/translations/ga.json +1 -0
  160. homeassistant/components/nam/translations/es.json +57 -3
  161. homeassistant/components/neato/translations/ga.json +1 -0
  162. homeassistant/components/nest/translations/cs.json +3 -0
  163. homeassistant/components/nest/translations/lt.json +3 -0
  164. homeassistant/components/nest/translations/zh-Hans.json +3 -0
  165. homeassistant/components/netatmo/translations/es.json +6 -0
  166. homeassistant/components/network/translations/es.json +6 -0
  167. homeassistant/components/ntfy/translations/es.json +57 -2
  168. homeassistant/components/ntfy/translations/zh-Hans.json +1 -1
  169. homeassistant/components/nuki/translations/es.json +12 -0
  170. homeassistant/components/nut/translations/es.json +40 -1
  171. homeassistant/components/ohme/translations/el.json +3 -0
  172. homeassistant/components/ondilo_ico/translations/ga.json +1 -0
  173. homeassistant/components/onedrive/translations/es.json +2 -1
  174. homeassistant/components/opensky/translations/es.json +2 -1
  175. homeassistant/components/openuv/translations/es.json +4 -1
  176. homeassistant/components/opower/config_flow.py +2 -1
  177. homeassistant/components/opower/coordinator.py +4 -2
  178. homeassistant/components/opower/manifest.json +1 -1
  179. homeassistant/components/osoenergy/translations/es.json +2 -0
  180. homeassistant/components/overkiz/translations/es.json +11 -2
  181. homeassistant/components/palazzetti/translations/es.json +2 -0
  182. homeassistant/components/paperless_ngx/translations/he.json +6 -2
  183. homeassistant/components/peblar/translations/es.json +1 -0
  184. homeassistant/components/peco/translations/el.json +12 -2
  185. homeassistant/components/plex/translations/es.json +6 -2
  186. homeassistant/components/point/translations/ga.json +1 -0
  187. homeassistant/components/powerwall/translations/es.json +1 -1
  188. homeassistant/components/pterodactyl/translations/es.json +12 -1
  189. homeassistant/components/random/translations/es.json +2 -0
  190. homeassistant/components/remote_calendar/calendar.py +12 -8
  191. homeassistant/components/remote_calendar/translations/es.json +2 -1
  192. homeassistant/components/reolink/translations/el.json +3 -0
  193. homeassistant/components/reolink/translations/es.json +11 -2
  194. homeassistant/components/reolink/translations/sv.json +1 -1
  195. homeassistant/components/rfxtrx/translations/es.json +3 -1
  196. homeassistant/components/roku/translations/el.json +3 -0
  197. homeassistant/components/romy/translations/es.json +4 -0
  198. homeassistant/components/samsungtv/entity.py +2 -2
  199. homeassistant/components/samsungtv/manifest.json +1 -1
  200. homeassistant/components/samsungtv/translations/es.json +9 -0
  201. homeassistant/components/sensibo/translations/es.json +6 -0
  202. homeassistant/components/senz/translations/ga.json +1 -0
  203. homeassistant/components/shelly/translations/es.json +12 -0
  204. homeassistant/components/shelly/translations/sl.json +3 -0
  205. homeassistant/components/smappee/translations/ga.json +1 -0
  206. homeassistant/components/smartthings/translations/he.json +2 -0
  207. homeassistant/components/smarttub/translations/es.json +1 -0
  208. homeassistant/components/smlight/translations/es.json +8 -0
  209. homeassistant/components/solaredge/translations/sl.json +1 -0
  210. homeassistant/components/solarlog/translations/id.json +74 -3
  211. homeassistant/components/spotify/translations/sl.json +1 -0
  212. homeassistant/components/switchbot/translations/he.json +4 -1
  213. homeassistant/components/syncthru/translations/es.json +10 -0
  214. homeassistant/components/synology_dsm/translations/sl.json +1 -0
  215. homeassistant/components/tado/translations/sl.json +1 -0
  216. homeassistant/components/tasmota/translations/sl.json +1 -0
  217. homeassistant/components/tesla_fleet/translations/es.json +27 -2
  218. homeassistant/components/teslemetry/translations/es.json +18 -3
  219. homeassistant/components/tessie/translations/es.json +32 -1
  220. homeassistant/components/tomorrowio/translations/es.json +22 -4
  221. homeassistant/components/toon/translations/ga.json +1 -0
  222. homeassistant/components/touchline_sl/translations/es.json +3 -1
  223. homeassistant/components/tplink/translations/ga.json +6 -0
  224. homeassistant/components/tplink_omada/translations/es.json +26 -2
  225. homeassistant/components/traccar_server/translations/es.json +2 -1
  226. homeassistant/components/tractive/translations/es.json +3 -0
  227. homeassistant/components/tradfri/translations/sl.json +1 -0
  228. homeassistant/components/tuya/translations/es.json +9 -1
  229. homeassistant/components/tuya/translations/he.json +14 -0
  230. homeassistant/components/twinkly/translations/el.json +3 -0
  231. homeassistant/components/unifi/translations/el.json +8 -0
  232. homeassistant/components/unifiprotect/translations/el.json +3 -0
  233. homeassistant/components/unifiprotect/translations/es.json +75 -1
  234. homeassistant/components/uptimerobot/translations/es.json +6 -0
  235. homeassistant/components/v2c/translations/el.json +3 -0
  236. homeassistant/components/v2c/translations/es.json +1 -1
  237. homeassistant/components/vacuum/translations/es.json +1 -0
  238. homeassistant/components/venstar/translations/el.json +5 -1
  239. homeassistant/components/vesync/translations/es.json +1 -0
  240. homeassistant/components/vicare/translations/el.json +47 -0
  241. homeassistant/components/vicare/translations/es.json +5 -2
  242. homeassistant/components/vizio/translations/el.json +3 -0
  243. homeassistant/components/vodafone_station/translations/el.json +2 -0
  244. homeassistant/components/vodafone_station/utils.py +1 -1
  245. homeassistant/components/wake_on_lan/__init__.py +1 -1
  246. homeassistant/components/wake_on_lan/manifest.json +1 -1
  247. homeassistant/components/weheat/translations/es.json +6 -0
  248. homeassistant/components/whirlpool/translations/es.json +16 -1
  249. homeassistant/components/withings/translations/el.json +6 -0
  250. homeassistant/components/withings/translations/fr.json +3 -0
  251. homeassistant/components/withings/translations/lt.json +6 -0
  252. homeassistant/components/withings/translations/zh-Hans.json +3 -0
  253. homeassistant/components/wolflink/translations/es.json +1 -0
  254. homeassistant/components/workday/translations/el.json +6 -4
  255. homeassistant/components/wyoming/translations/el.json +16 -0
  256. homeassistant/components/xbox/translations/ga.json +1 -0
  257. homeassistant/components/xiaomi_ble/translations/es.json +10 -0
  258. homeassistant/components/xiaomi_miio/fan.py +6 -0
  259. homeassistant/components/xiaomi_miio/translations/es.json +4 -1
  260. homeassistant/components/yale/translations/fr.json +1 -0
  261. homeassistant/components/yale/translations/ga.json +1 -0
  262. homeassistant/components/yamaha_musiccast/translations/el.json +3 -0
  263. homeassistant/components/yamaha_musiccast/translations/es.json +8 -1
  264. homeassistant/components/yardian/translations/el.json +3 -0
  265. homeassistant/components/yeelight/translations/el.json +3 -0
  266. homeassistant/components/yeelight/translations/es.json +3 -0
  267. homeassistant/components/yolink/translations/es.json +7 -1
  268. homeassistant/components/youless/translations/el.json +3 -0
  269. homeassistant/components/youtube/translations/el.json +2 -1
  270. homeassistant/components/zeversolar/translations/el.json +3 -0
  271. homeassistant/components/zha/translations/es.json +10 -2
  272. homeassistant/components/zha/translations/ga.json +74 -0
  273. homeassistant/components/zwave_js/translations/el.json +3 -0
  274. homeassistant/components/zwave_js/translations/es.json +28 -0
  275. homeassistant/const.py +1 -1
  276. homeassistant/package_constraints.txt +3 -10
  277. {homeassistant-2025.6.0b9.dist-info → homeassistant-2025.6.1.dist-info}/METADATA +3 -2
  278. {homeassistant-2025.6.0b9.dist-info → homeassistant-2025.6.1.dist-info}/RECORD +283 -243
  279. {homeassistant-2025.6.0b9.dist-info → homeassistant-2025.6.1.dist-info}/WHEEL +0 -0
  280. {homeassistant-2025.6.0b9.dist-info → homeassistant-2025.6.1.dist-info}/entry_points.txt +0 -0
  281. {homeassistant-2025.6.0b9.dist-info → homeassistant-2025.6.1.dist-info}/licenses/LICENSE.md +0 -0
  282. {homeassistant-2025.6.0b9.dist-info → homeassistant-2025.6.1.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
  283. {homeassistant-2025.6.0b9.dist-info → homeassistant-2025.6.1.dist-info}/top_level.txt +0 -0
@@ -104,6 +104,9 @@
104
104
  "reachable": {
105
105
  "name": "Accesibilidad"
106
106
  },
107
+ "rf_strength": {
108
+ "name": "Intensidad de RF"
109
+ },
107
110
  "sum_rain_1": {
108
111
  "name": "Precipitaci\u00f3n \u00faltima hora"
109
112
  },
@@ -113,6 +116,9 @@
113
116
  "temp_trend": {
114
117
  "name": "Tendencia de la temperatura"
115
118
  },
119
+ "wifi_strength": {
120
+ "name": "Intensidad Wi-Fi"
121
+ },
116
122
  "wind_angle": {
117
123
  "name": "\u00c1ngulo del viento"
118
124
  },
@@ -1,4 +1,10 @@
1
1
  {
2
+ "issues": {
3
+ "docker_host_network": {
4
+ "description": "Home Assistant se ejecuta en un contenedor sin modo de red de host. Esto puede causar problemas de red con la detecci\u00f3n de dispositivos, la multidifusi\u00f3n, la difusi\u00f3n y otras funciones de red, as\u00ed como la detecci\u00f3n incorrecta de sus propias URL e IP, lo que genera problemas con los reproductores multimedia y el env\u00edo de respuestas de audio a los asistentes de voz. \n \nSe recomienda ejecutar Home Assistant con red de host a\u00f1adiendo el par\u00e1metro `--network host` al comando de ejecuci\u00f3n de Docker o configurando `network_mode: host` en el archivo `docker-compose.yml`. \n \nConsulta la [documentaci\u00f3n de Docker]({docs_url}) para obtener m\u00e1s informaci\u00f3n sobre la red de host de Docker y consulta la [gu\u00eda de instalaci\u00f3n de Home Assistant]({install_url}) para ver nuestra configuraci\u00f3n recomendada y compatible.",
5
+ "title": "Home Assistant no est\u00e1 utilizando la red del host"
6
+ }
7
+ },
2
8
  "system_health": {
3
9
  "info": {
4
10
  "adapters": "Adaptadores",
@@ -33,11 +33,22 @@
33
33
  "verify_ssl": "Verificar el certificado SSL"
34
34
  },
35
35
  "data_description": {
36
+ "url": "Direcci\u00f3n del servicio ntfy. Modif\u00edcala si quieres usar un servidor diferente.",
36
37
  "verify_ssl": "Habilita la verificaci\u00f3n del certificado SSL para conexiones seguras. Desact\u00edvala solo si te conectas a una instancia ntfy con un certificado autofirmado."
37
38
  },
39
+ "description": "Configurar el servicio de notificaciones push **ntfy**",
38
40
  "sections": {
39
41
  "auth": {
40
- "description": "Dependiendo de si el servidor est\u00e1 configurado para admitir control de acceso, algunos topics pueden estar protegidos contra lectura y escritura para que solo los usuarios con las credenciales correctas puedan suscribirse o publicar en ellos. Para publicar o suscribirse a topics protegidos, puedes proporcionar un nombre de usuario y una contrase\u00f1a. Home Assistant generar\u00e1 autom\u00e1ticamente un token de acceso para autenticarse con ntfy."
42
+ "data": {
43
+ "password": "Contrase\u00f1a",
44
+ "username": "Nombre de usuario"
45
+ },
46
+ "data_description": {
47
+ "password": "Introduce la contrase\u00f1a correspondiente al nombre de usuario proporcionado para la autenticaci\u00f3n",
48
+ "username": "Introduce el nombre de usuario necesario para autenticarse con topics ntfy protegidos"
49
+ },
50
+ "description": "Dependiendo de si el servidor est\u00e1 configurado para admitir control de acceso, algunos topics pueden estar protegidos contra lectura y escritura para que solo los usuarios con las credenciales correctas puedan suscribirse o publicar en ellos. Para publicar o suscribirse a topics protegidos, puedes proporcionar un nombre de usuario y una contrase\u00f1a. Home Assistant generar\u00e1 autom\u00e1ticamente un token de acceso para autenticarse con ntfy.",
51
+ "name": "Autenticaci\u00f3n"
41
52
  }
42
53
  }
43
54
  }
@@ -45,12 +56,56 @@
45
56
  },
46
57
  "config_subentries": {
47
58
  "topic": {
59
+ "abort": {
60
+ "already_configured": "El topic ya est\u00e1 configurado"
61
+ },
62
+ "entry_type": "Topic",
48
63
  "error": {
49
- "invalid_topic": "Topic no v\u00e1lido. Solo se permiten letras, n\u00fameros, guiones bajos y guiones."
64
+ "cannot_connect": "No se pudo conectar",
65
+ "invalid_topic": "Topic no v\u00e1lido. Solo se permiten letras, n\u00fameros, guiones bajos y guiones.",
66
+ "publish_forbidden": "Est\u00e1 prohibido publicar en este topic.",
67
+ "unknown": "Error inesperado"
68
+ },
69
+ "initiate_flow": {
70
+ "user": "A\u00f1adir topic"
71
+ },
72
+ "step": {
73
+ "add_topic": {
74
+ "data": {
75
+ "name": "Nombre para mostrar",
76
+ "topic": "Topic"
77
+ },
78
+ "data_description": {
79
+ "name": "Establece un nombre alternativo para mostrar en lugar del nombre del topic. Esto ayuda a identificar m\u00e1s f\u00e1cilmente los topics con nombres complejos o dif\u00edciles de leer.",
80
+ "topic": "Introduce el nombre del topic que quieres utilizar para las notificaciones. Es posible que los topics no est\u00e9n protegidos con contrase\u00f1a, as\u00ed que elige un nombre que no sea f\u00e1cil de adivinar."
81
+ },
82
+ "description": "Configurar un topic para notificaciones.",
83
+ "title": "Topic"
84
+ },
85
+ "user": {
86
+ "description": "Configurar un topic para notificaciones.",
87
+ "menu_options": {
88
+ "add_topic": "Introducir topic",
89
+ "generate_topic": "Generar nombre de topic"
90
+ },
91
+ "title": "Topic"
92
+ }
50
93
  }
51
94
  }
52
95
  },
53
96
  "exceptions": {
97
+ "authentication_error": {
98
+ "message": "Error al autenticarse con el servicio ntfy. Por favor, verifica tus credenciales."
99
+ },
100
+ "connection_error": {
101
+ "message": "No se pudo conectar al servicio ntfy debido a un error de conexi\u00f3n"
102
+ },
103
+ "publish_failed_exception": {
104
+ "message": "No se pudo publicar la notificaci\u00f3n debido a un error de conexi\u00f3n"
105
+ },
106
+ "publish_failed_request_error": {
107
+ "message": "No se pudo publicar la notificaci\u00f3n: {error_msg}"
108
+ },
54
109
  "server_error": {
55
110
  "message": "No se pudo conectar al servicio ntfy debido a un error del servidor: {error_msg}"
56
111
  },
@@ -5,7 +5,7 @@
5
5
  },
6
6
  "config": {
7
7
  "abort": {
8
- "account_mismatch": "\u63d0\u4f9b\u7684\u8bbf\u95ee\u4ee4\u724c\u5bf9\u5e94\u7684\u662f\u8d26\u6237 {wrong_username} \u3002\u8bf7\u4f7f\u7528\u5e10\u6237 **{username}** \u91cd\u65b0\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1",
8
+ "account_mismatch": "\u63d0\u4f9b\u7684\u8bbf\u95ee\u4ee4\u724c\u5bf9\u5e94\u7684\u662f\u8d26\u6237 {wrong_username} \u3002\u8bf7\u4f7f\u7528\u8d26\u6237 **{username}** \u91cd\u65b0\u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1",
9
9
  "already_configured": "\u670d\u52a1\u5df2\u914d\u7f6e",
10
10
  "reauth_successful": "\u91cd\u65b0\u8ba4\u8bc1\u6210\u529f"
11
11
  },
@@ -36,6 +36,18 @@
36
36
  "ring_action": {
37
37
  "name": "Acci\u00f3n del timbre"
38
38
  }
39
+ },
40
+ "lock": {
41
+ "nuki_lock": {
42
+ "state_attributes": {
43
+ "battery_critical": {
44
+ "state": {
45
+ "off": "Normal",
46
+ "on": "Bajo"
47
+ }
48
+ }
49
+ }
50
+ }
39
51
  }
40
52
  },
41
53
  "issues": {
@@ -3,7 +3,9 @@
3
3
  "abort": {
4
4
  "already_configured": "El dispositivo ya est\u00e1 configurado",
5
5
  "no_ups_found": "No hay dispositivos UPS disponibles en el servidor NUT.",
6
- "reauth_successful": "La autenticaci\u00f3n se volvi\u00f3 a realizar correctamente"
6
+ "reauth_successful": "La autenticaci\u00f3n se volvi\u00f3 a realizar correctamente",
7
+ "reconfigure_successful": "Se volvi\u00f3 a configurar correctamente",
8
+ "unique_id_mismatch": "El identificador del fabricante, modelo y n\u00famero de serie del dispositivo no coincide con el identificador anterior."
7
9
  },
8
10
  "error": {
9
11
  "cannot_connect": "Error de conexi\u00f3n: {error}",
@@ -16,12 +18,43 @@
16
18
  "password": "Contrase\u00f1a",
17
19
  "username": "Nombre de usuario"
18
20
  },
21
+ "data_description": {
22
+ "password": "La contrase\u00f1a para iniciar sesi\u00f3n en tu servidor NUT. La contrase\u00f1a es opcional.",
23
+ "username": "El nombre de usuario para iniciar sesi\u00f3n en tu servidor NUT. El nombre de usuario es opcional."
24
+ },
19
25
  "description": "Volver a autenticar el servidor NUT en {host}:{port}"
20
26
  },
27
+ "reconfigure": {
28
+ "data": {
29
+ "host": "Host",
30
+ "password": "Contrase\u00f1a",
31
+ "port": "Puerto",
32
+ "username": "Nombre de usuario"
33
+ },
34
+ "data_description": {
35
+ "host": "La direcci\u00f3n IP o el nombre de host de tu servidor NUT.",
36
+ "password": "La contrase\u00f1a para iniciar sesi\u00f3n en tu servidor NUT. La contrase\u00f1a es opcional.",
37
+ "port": "El puerto de red de tu servidor NUT. El puerto predeterminado es '3493'.",
38
+ "username": "El nombre de usuario para iniciar sesi\u00f3n en tu servidor NUT. El nombre de usuario es opcional."
39
+ },
40
+ "description": "Conectar con el servidor NUT"
41
+ },
42
+ "reconfigure_ups": {
43
+ "data": {
44
+ "alias": "Nombre del SAI del servidor NUT"
45
+ },
46
+ "data_description": {
47
+ "alias": "El nombre del SAI configurado en el servidor NUT."
48
+ },
49
+ "title": "Selecciona el SAI del servidor NUT que quieras monitorizar"
50
+ },
21
51
  "ups": {
22
52
  "data": {
23
53
  "alias": "Nombre del SAI del servidor NUT"
24
54
  },
55
+ "data_description": {
56
+ "alias": "El nombre del SAI configurado en el servidor NUT."
57
+ },
25
58
  "title": "Selecciona el SAI del servidor NUT que quieras monitorizar"
26
59
  },
27
60
  "user": {
@@ -125,7 +158,11 @@
125
158
  "battery_charger_status": {
126
159
  "name": "Estado de carga",
127
160
  "state": {
161
+ "charging": "Cargando",
162
+ "disabled": "Deshabilitado",
163
+ "discharging": "Descargando",
128
164
  "floating": "Flotante",
165
+ "off": "Apagado",
129
166
  "resting": "Descansando",
130
167
  "unknown": "Desconocido"
131
168
  }
@@ -419,6 +456,8 @@
419
456
  "ups_beeper_status": {
420
457
  "name": "Estado del zumbador",
421
458
  "state": {
459
+ "disabled": "Deshabilitado",
460
+ "enabled": "Habilitado",
422
461
  "muted": "Silenciado"
423
462
  }
424
463
  },
@@ -61,6 +61,9 @@
61
61
  }
62
62
  },
63
63
  "sensor": {
64
+ "slot_list": {
65
+ "name": "\u03a5\u03c0\u03bf\u03b4\u03bf\u03c7\u03ad\u03c2 \u03c6\u03cc\u03c1\u03c4\u03b9\u03c3\u03b7\u03c2"
66
+ },
64
67
  "status": {
65
68
  "state": {
66
69
  "charging": "\u03a6\u03cc\u03c1\u03c4\u03b9\u03c3\u03b7",
@@ -62,7 +62,8 @@
62
62
  "state": {
63
63
  "critical": "Cr\u00edtico",
64
64
  "exceeded": "Excedido",
65
- "nearing": "Acerc\u00e1ndose al l\u00edmite"
65
+ "nearing": "Acerc\u00e1ndose al l\u00edmite",
66
+ "normal": "Normal"
66
67
  }
67
68
  },
68
69
  "remaining_size": {
@@ -27,7 +27,8 @@
27
27
  "password": "Contrase\u00f1a",
28
28
  "radius": "Radio",
29
29
  "username": "Nombre de usuario"
30
- }
30
+ },
31
+ "description": "Puedes iniciar sesi\u00f3n en tu cuenta de OpenSky para aumentar la frecuencia de actualizaci\u00f3n."
31
32
  }
32
33
  }
33
34
  }
@@ -43,7 +43,10 @@
43
43
  "name": "Nivel UV actual",
44
44
  "state": {
45
45
  "extreme": "Extremo",
46
- "moderate": "Moderado"
46
+ "high": "Alto",
47
+ "low": "Bajo",
48
+ "moderate": "Moderado",
49
+ "very_high": "Muy alto"
47
50
  }
48
51
  },
49
52
  "max_uv_index": {
@@ -10,6 +10,7 @@ from opower import (
10
10
  CannotConnect,
11
11
  InvalidAuth,
12
12
  Opower,
13
+ create_cookie_jar,
13
14
  get_supported_utility_names,
14
15
  select_utility,
15
16
  )
@@ -39,7 +40,7 @@ async def _validate_login(
39
40
  ) -> dict[str, str]:
40
41
  """Validate login data and return any errors."""
41
42
  api = Opower(
42
- async_create_clientsession(hass),
43
+ async_create_clientsession(hass, cookie_jar=create_cookie_jar()),
43
44
  login_data[CONF_UTILITY],
44
45
  login_data[CONF_USERNAME],
45
46
  login_data[CONF_PASSWORD],
@@ -12,6 +12,7 @@ from opower import (
12
12
  MeterType,
13
13
  Opower,
14
14
  ReadResolution,
15
+ create_cookie_jar,
15
16
  )
16
17
  from opower.exceptions import ApiException, CannotConnect, InvalidAuth
17
18
 
@@ -30,7 +31,8 @@ from homeassistant.config_entries import ConfigEntry
30
31
  from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, UnitOfEnergy, UnitOfVolume
31
32
  from homeassistant.core import HomeAssistant, callback
32
33
  from homeassistant.exceptions import ConfigEntryAuthFailed
33
- from homeassistant.helpers import aiohttp_client, issue_registry as ir
34
+ from homeassistant.helpers import issue_registry as ir
35
+ from homeassistant.helpers.aiohttp_client import async_create_clientsession
34
36
  from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
35
37
  from homeassistant.util import dt as dt_util
36
38
 
@@ -62,7 +64,7 @@ class OpowerCoordinator(DataUpdateCoordinator[dict[str, Forecast]]):
62
64
  update_interval=timedelta(hours=12),
63
65
  )
64
66
  self.api = Opower(
65
- aiohttp_client.async_get_clientsession(hass),
67
+ async_create_clientsession(hass, cookie_jar=create_cookie_jar()),
66
68
  config_entry.data[CONF_UTILITY],
67
69
  config_entry.data[CONF_USERNAME],
68
70
  config_entry.data[CONF_PASSWORD],
@@ -7,5 +7,5 @@
7
7
  "documentation": "https://www.home-assistant.io/integrations/opower",
8
8
  "iot_class": "cloud_polling",
9
9
  "loggers": ["opower"],
10
- "requirements": ["opower==0.12.3"]
10
+ "requirements": ["opower==0.12.4"]
11
11
  }
@@ -43,9 +43,11 @@
43
43
  "heater_mode": {
44
44
  "name": "Modo calefacci\u00f3n",
45
45
  "state": {
46
+ "auto": "Auto",
46
47
  "extraenergy": "Energ\u00eda extra",
47
48
  "ffr": "Reserva de frecuencia r\u00e1pida",
48
49
  "legionella": "Legionela",
50
+ "manual": "Manual",
49
51
  "off": "Apagado",
50
52
  "powersave": "Ahorro de energ\u00eda",
51
53
  "voltage": "Voltaje"
@@ -78,6 +78,8 @@
78
78
  "preset_mode": {
79
79
  "state": {
80
80
  "auto": "Auto",
81
+ "comfort-1": "Confort -1 \u00b0C",
82
+ "comfort-2": "Confort -2 \u00b0C",
81
83
  "drying": "Secando",
82
84
  "external": "Externo",
83
85
  "freeze": "Congelar",
@@ -123,12 +125,19 @@
123
125
  "state": {
124
126
  "critical": "Cr\u00edtica",
125
127
  "full": "Completa",
126
- "good": "Buena"
128
+ "good": "Buena",
129
+ "low": "Bajo",
130
+ "medium": "Medio",
131
+ "normal": "Normal",
132
+ "verylow": "Muy bajo"
127
133
  }
128
134
  },
129
135
  "discrete_rssi_level": {
130
136
  "state": {
131
- "good": "Bueno"
137
+ "good": "Bueno",
138
+ "low": "Bajo",
139
+ "normal": "Normal",
140
+ "verylow": "Muy bajo"
132
141
  }
133
142
  },
134
143
  "priority_lock_originator": {
@@ -31,6 +31,8 @@
31
31
  "state_attributes": {
32
32
  "fan_mode": {
33
33
  "state": {
34
+ "auto": "Auto",
35
+ "high": "Alto",
34
36
  "silent": "Silencioso"
35
37
  }
36
38
  }
@@ -61,12 +61,16 @@
61
61
  },
62
62
  "redis_status": {
63
63
  "state": {
64
- "error": "\u05e9\u05d2\u05d9\u05d0\u05d4"
64
+ "error": "\u05e9\u05d2\u05d9\u05d0\u05d4",
65
+ "ok": "\u05ea\u05e7\u05d9\u05df",
66
+ "warning": "\u05d0\u05d6\u05d4\u05e8\u05d4"
65
67
  }
66
68
  },
67
69
  "sanity_check_status": {
68
70
  "state": {
69
- "error": "\u05e9\u05d2\u05d9\u05d0\u05d4"
71
+ "error": "\u05e9\u05d2\u05d9\u05d0\u05d4",
72
+ "ok": "\u05ea\u05e7\u05d9\u05df",
73
+ "warning": "\u05d0\u05d6\u05d4\u05e8\u05d4"
70
74
  }
71
75
  }
72
76
  }
@@ -108,6 +108,7 @@
108
108
  "name": "Estado",
109
109
  "state": {
110
110
  "charging": "Cargando",
111
+ "error": "Error",
111
112
  "fault": "Fallo",
112
113
  "invalid": "No v\u00e1lido",
113
114
  "no_ev_connected": "Ning\u00fan VE conectado",
@@ -1,7 +1,16 @@
1
1
  {
2
2
  "config": {
3
3
  "abort": {
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"
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
+ "incompatible_meter": "\u039f \u03bc\u03b5\u03c4\u03c1\u03b7\u03c4\u03ae\u03c2 \u03c3\u03b1\u03c2 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03c3\u03c5\u03bc\u03b2\u03b1\u03c4\u03cc\u03c2 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03ad\u03bb\u03b5\u03b3\u03c7\u03bf \u03ad\u03be\u03c5\u03c0\u03bd\u03c9\u03bd \u03bc\u03b5\u03c4\u03c1\u03b7\u03c4\u03ce\u03bd."
6
+ },
7
+ "error": {
8
+ "http_error": "\u03a0\u03b1\u03c1\u03bf\u03c5\u03c3\u03b9\u03ac\u03c3\u03c4\u03b7\u03ba\u03b5 \u03c3\u03c6\u03ac\u03bb\u03bc\u03b1 \u03ba\u03b1\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03c0\u03b9\u03ba\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b1 \u03bc\u03b5 \u03c4\u03bf PECO. \u03a4\u03bf \u03c0\u03b9\u03b8\u03b1\u03bd\u03cc\u03c4\u03b5\u03c1\u03bf \u03b5\u03af\u03bd\u03b1\u03b9 \u03cc\u03c4\u03b9 \u03b5\u03b9\u03c3\u03b1\u03b3\u03ac\u03b3\u03b1\u03c4\u03b5 \u03ad\u03bd\u03b1\u03bd \u03bc\u03b7 \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc \u03c4\u03b7\u03bb\u03b5\u03c6\u03ce\u03bd\u03bf\u03c5. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03bb\u03ad\u03b3\u03be\u03c4\u03b5 \u03c4\u03bf\u03bd \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc \u03c4\u03b7\u03bb\u03b5\u03c6\u03ce\u03bd\u03bf\u03c5 \u03ae \u03b4\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac \u03b1\u03c1\u03b3\u03cc\u03c4\u03b5\u03c1\u03b1.",
9
+ "invalid_phone_number": "\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b5\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03ad\u03bd\u03b1\u03bd \u03ad\u03b3\u03ba\u03c5\u03c1\u03bf \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc \u03c4\u03b7\u03bb\u03b5\u03c6\u03ce\u03bd\u03bf\u03c5.",
10
+ "unresponsive_meter": "\u039f \u03bc\u03b5\u03c4\u03c1\u03b7\u03c4\u03ae\u03c2 \u03c3\u03b1\u03c2 \u03b4\u03b5\u03bd \u03b1\u03bd\u03c4\u03b1\u03c0\u03bf\u03ba\u03c1\u03af\u03bd\u03b5\u03c4\u03b1\u03b9. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03b4\u03bf\u03ba\u03b9\u03bc\u03ac\u03c3\u03c4\u03b5 \u03be\u03b1\u03bd\u03ac \u03b1\u03c1\u03b3\u03cc\u03c4\u03b5\u03c1\u03b1."
11
+ },
12
+ "progress": {
13
+ "verifying_meter": "\u039c\u03b9\u03b1 \u03c3\u03c4\u03b9\u03b3\u03bc\u03ae. \u0393\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03b5\u03c0\u03b1\u03bb\u03ae\u03b8\u03b5\u03c5\u03c3\u03b7 \u03cc\u03c4\u03b9 \u03bf \u03bc\u03b5\u03c4\u03c1\u03b7\u03c4\u03ae\u03c2 \u03c3\u03b1\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c3\u03c5\u03bc\u03b2\u03b1\u03c4\u03cc\u03c2. \u0391\u03c5\u03c4\u03cc \u03bc\u03c0\u03bf\u03c1\u03b5\u03af \u03bd\u03b1 \u03b4\u03b9\u03b1\u03c1\u03ba\u03ad\u03c3\u03b5\u03b9 \u03ad\u03bd\u03b1 \u03ae \u03b4\u03cd\u03bf \u03bb\u03b5\u03c0\u03c4\u03ac."
5
14
  },
6
15
  "step": {
7
16
  "user": {
@@ -9,7 +18,8 @@
9
18
  "county": "\u039a\u03bf\u03bc\u03b7\u03c4\u03b5\u03af\u03b1"
10
19
  },
11
20
  "data_description": {
12
- "county": "\u039a\u03bf\u03bc\u03b7\u03c4\u03b5\u03af\u03b1 \u03c0\u03bf\u03c5 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c4\u03b1\u03b9 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03b1\u03c1\u03b9\u03b8\u03bc\u03bf\u03cd \u03b4\u03b9\u03b1\u03ba\u03bf\u03c0\u03ae\u03c2"
21
+ "county": "\u039a\u03bf\u03bc\u03b7\u03c4\u03b5\u03af\u03b1 \u03c0\u03bf\u03c5 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c4\u03b1\u03b9 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03b1\u03bd\u03ac\u03ba\u03c4\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03b1\u03c1\u03b9\u03b8\u03bc\u03bf\u03cd \u03b4\u03b9\u03b1\u03ba\u03bf\u03c0\u03ae\u03c2",
22
+ "phone_number": "\u0391\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u03c4\u03b7\u03bb\u03b5\u03c6\u03ce\u03bd\u03bf\u03c5 \u03c0\u03bf\u03c5 \u03c3\u03c5\u03bd\u03b4\u03ad\u03b5\u03c4\u03b1\u03b9 \u03bc\u03b5 \u03c4\u03bf\u03bd \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03cc PECO (\u03c0\u03c1\u03bf\u03b1\u03b9\u03c1\u03b5\u03c4\u03b9\u03ba\u03ac). \u0397 \u03c0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03b5\u03bd\u03cc\u03c2 \u03b1\u03c1\u03b9\u03b8\u03bc\u03bf\u03cd \u03c4\u03b7\u03bb\u03b5\u03c6\u03ce\u03bd\u03bf\u03c5 \u03c0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c4\u03b5\u03b9 \u03ad\u03bd\u03b1\u03bd \u03b4\u03c5\u03b1\u03b4\u03b9\u03ba\u03cc \u03b1\u03b9\u03c3\u03b8\u03b7\u03c4\u03ae\u03c1\u03b1 \u03c0\u03bf\u03c5 \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03ce\u03bd\u03b5\u03b9 \u03b1\u03bd \u03c4\u03bf \u03c1\u03b5\u03cd\u03bc\u03b1 \u03c3\u03b1\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03ba\u03bf\u03bc\u03bc\u03ad\u03bd\u03bf \u03ae \u03cc\u03c7\u03b9, \u03ba\u03b1\u03b9 \u03cc\u03c7\u03b9 \u03b1\u03bd \u03c0\u03c1\u03cc\u03ba\u03b5\u03b9\u03c4\u03b1\u03b9 \u03b3\u03b9\u03b1 \u03c0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03ba\u03cc\u03c0\u03c4\u03b7 \u03ae \u03b3\u03b9\u03b1 \u03b4\u03b9\u03ba\u03cc \u03c3\u03b1\u03c2 \u03c0\u03c1\u03cc\u03b2\u03bb\u03b7\u03bc\u03b1."
13
23
  }
14
24
  }
15
25
  }
@@ -10,6 +10,7 @@
10
10
  },
11
11
  "error": {
12
12
  "faulty_credentials": "Error de autorizaci\u00f3n, verifica el token",
13
+ "host_or_token": "Debes proporcionar al menos uno de los siguientes: host o token",
13
14
  "no_servers": "No hay servidores vinculados a la cuenta Plex",
14
15
  "not_found": "Servidor Plex no encontrado",
15
16
  "ssl_error": "Problema con el certificado SSL"
@@ -23,7 +24,8 @@
23
24
  "ssl": "Utiliza un certificado SSL",
24
25
  "token": "Token (opcional)",
25
26
  "verify_ssl": "Verificar el certificado SSL"
26
- }
27
+ },
28
+ "title": "Configuraci\u00f3n manual de Plex"
27
29
  },
28
30
  "select_server": {
29
31
  "data": {
@@ -59,9 +61,11 @@
59
61
  "plex_mp_settings": {
60
62
  "data": {
61
63
  "ignore_new_shared_users": "Ignorar nuevos usuarios administrados/compartidos",
64
+ "ignore_plex_web_clients": "Ignorar los clientes web de Plex",
62
65
  "monitored_users": "Usuarios supervisados",
63
66
  "use_episode_art": "Usar el arte de episodios"
64
- }
67
+ },
68
+ "description": "Opciones para reproductores multimedia Plex"
65
69
  }
66
70
  }
67
71
  },
@@ -69,7 +69,7 @@
69
69
  "name": "Frecuencia de la bater\u00eda"
70
70
  },
71
71
  "battery_instant_power": {
72
- "name": "Potencia de la bater\u00eda"
72
+ "name": "Energ\u00eda de la bater\u00eda"
73
73
  },
74
74
  "battery_instant_voltage": {
75
75
  "name": "Tensi\u00f3n de la bater\u00eda"
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "config": {
3
3
  "abort": {
4
- "already_configured": "El servicio ya est\u00e1 configurado"
4
+ "already_configured": "El servicio ya est\u00e1 configurado",
5
+ "reauth_successful": "La autenticaci\u00f3n se volvi\u00f3 a realizar correctamente"
5
6
  },
6
7
  "error": {
7
8
  "cannot_connect": "No se pudo conectar",
@@ -9,6 +10,16 @@
9
10
  "unknown": "Error inesperado"
10
11
  },
11
12
  "step": {
13
+ "reauth_confirm": {
14
+ "data": {
15
+ "api_key": "Clave API"
16
+ },
17
+ "data_description": {
18
+ "api_key": "La clave API de la cuenta para acceder a tu servidor Pterodactyl."
19
+ },
20
+ "description": "Por favor, actualiza la clave API de tu cuenta.",
21
+ "title": "Autenticaci\u00f3n caducada para {name}"
22
+ },
12
23
  "user": {
13
24
  "data": {
14
25
  "api_key": "Clave API",
@@ -82,8 +82,10 @@
82
82
  "options": {
83
83
  "apparent_power": "Potencia aparente",
84
84
  "aqi": "\u00cdndice de calidad del aire",
85
+ "area": "\u00c1rea",
85
86
  "atmospheric_pressure": "Presi\u00f3n atmosf\u00e9rica",
86
87
  "battery": "Bater\u00eda",
88
+ "blood_glucose_concentration": "Concentraci\u00f3n de glucosa en sangre",
87
89
  "carbon_dioxide": "Di\u00f3xido de carbono",
88
90
  "carbon_monoxide": "Mon\u00f3xido de carbono",
89
91
  "conductivity": "Conductividad",
@@ -4,6 +4,7 @@ from datetime import datetime
4
4
  import logging
5
5
 
6
6
  from ical.event import Event
7
+ from ical.timeline import Timeline
7
8
 
8
9
  from homeassistant.components.calendar import CalendarEntity, CalendarEvent
9
10
  from homeassistant.core import HomeAssistant
@@ -48,12 +49,18 @@ class RemoteCalendarEntity(
48
49
  super().__init__(coordinator)
49
50
  self._attr_name = entry.data[CONF_CALENDAR_NAME]
50
51
  self._attr_unique_id = entry.entry_id
51
- self._event: CalendarEvent | None = None
52
+ self._timeline: Timeline | None = None
52
53
 
53
54
  @property
54
55
  def event(self) -> CalendarEvent | None:
55
56
  """Return the next upcoming event."""
56
- return self._event
57
+ if self._timeline is None:
58
+ return None
59
+ now = dt_util.now()
60
+ events = self._timeline.active_after(now)
61
+ if event := next(events, None):
62
+ return _get_calendar_event(event)
63
+ return None
57
64
 
58
65
  async def async_get_events(
59
66
  self, hass: HomeAssistant, start_date: datetime, end_date: datetime
@@ -79,15 +86,12 @@ class RemoteCalendarEntity(
79
86
  """
80
87
  await super().async_update()
81
88
 
82
- def next_timeline_event() -> CalendarEvent | None:
89
+ def _get_timeline() -> Timeline | None:
83
90
  """Return the next active event."""
84
91
  now = dt_util.now()
85
- events = self.coordinator.data.timeline_tz(now.tzinfo).active_after(now)
86
- if event := next(events, None):
87
- return _get_calendar_event(event)
88
- return None
92
+ return self.coordinator.data.timeline_tz(now.tzinfo)
89
93
 
90
- self._event = await self.hass.async_add_executor_job(next_timeline_event)
94
+ self._timeline = await self.hass.async_add_executor_job(_get_timeline)
91
95
 
92
96
 
93
97
  def _get_calendar_event(event: Event) -> CalendarEvent:
@@ -5,7 +5,8 @@
5
5
  },
6
6
  "error": {
7
7
  "cannot_connect": "No se pudo conectar",
8
- "forbidden": "El servidor entendi\u00f3 la solicitud pero se niega a autorizarla."
8
+ "forbidden": "El servidor entendi\u00f3 la solicitud pero se niega a autorizarla.",
9
+ "invalid_ics_file": "Hubo un problema al leer la informaci\u00f3n del calendario. Consulta el registro de errores para obtener m\u00e1s informaci\u00f3n."
9
10
  },
10
11
  "step": {
11
12
  "user": {
@@ -679,6 +679,9 @@
679
679
  "init": {
680
680
  "data": {
681
681
  "protocol": "\u03a0\u03c1\u03c9\u03c4\u03cc\u03ba\u03bf\u03bb\u03bb\u03bf"
682
+ },
683
+ "data_description": {
684
+ "protocol": "\u03a0\u03c1\u03c9\u03c4\u03cc\u03ba\u03bf\u03bb\u03bb\u03bf \u03c1\u03bf\u03ae\u03c2 \u03c0\u03bf\u03c5 \u03b8\u03b1 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03b5\u03af \u03b3\u03b9\u03b1 \u03c4\u03b9\u03c2 \u03bf\u03bd\u03c4\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03c4\u03b7\u03c2 \u03ba\u03ac\u03bc\u03b5\u03c1\u03b1\u03c2. \u03a4\u03bf RTSP \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03b5\u03b9 \u03c1\u03bf\u03ad\u03c2 4K (\u03ba\u03c9\u03b4\u03b9\u03ba\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 h265), \u03b5\u03bd\u03ce \u03c4\u03b1 RTMP \u03ba\u03b1\u03b9 FLV \u03cc\u03c7\u03b9. \u03a4\u03bf FLV \u03b5\u03af\u03bd\u03b1\u03b9 \u03c4\u03bf \u03bb\u03b9\u03b3\u03cc\u03c4\u03b5\u03c1\u03bf \u03b1\u03c0\u03b1\u03b9\u03c4\u03b7\u03c4\u03b9\u03ba\u03cc \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03ba\u03ac\u03bc\u03b5\u03c1\u03b1."
682
685
  }
683
686
  }
684
687
  }