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
@@ -60,7 +60,7 @@
60
60
  "set_ca_cert": "\u05d1\u05d7\u05d9\u05e8\u05ea **\u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9** \u05dc\u05d0\u05d9\u05de\u05d5\u05ea CA \u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9 \u05d0\u05d5 **\u05de\u05d5\u05ea\u05d0\u05dd \u05d0\u05d9\u05e9\u05d9\u05ea** \u05d5\u05dc\u05d7\u05d9\u05e6\u05d4 \u05e2\u05dc **\u05d4\u05d1\u05d0** \u05db\u05d3\u05d9 \u05dc\u05d4\u05d2\u05d3\u05d9\u05e8 \u05d0\u05d9\u05e9\u05d5\u05e8 CA \u05de\u05d5\u05ea\u05d0\u05dd \u05d0\u05d9\u05e9\u05d9\u05ea \u05e9\u05d9\u05d0\u05e4\u05e9\u05e8 \u05d0\u05d9\u05de\u05d5\u05ea \u05ea\u05e2\u05d5\u05d3\u05ea \u05de\u05ea\u05d5\u05d5\u05db\u05d9 MQTT \u05e9\u05dc\u05da.",
61
61
  "set_client_cert": "\u05d4\u05e4\u05e2\u05dc\u05d4 \u05d5\u05dc\u05d7\u05d9\u05e6\u05d4 \u05e2\u05dc **\u05d4\u05d1\u05d0** \u05db\u05d3\u05d9 \u05dc\u05d4\u05d2\u05d3\u05d9\u05e8 \u05d0\u05d9\u05e9\u05d5\u05e8 \u05dc\u05e7\u05d5\u05d7 \u05d5\u05de\u05e4\u05ea\u05d7 \u05e4\u05e8\u05d8\u05d9 \u05dc\u05d0\u05d9\u05de\u05d5\u05ea \u05de\u05d5\u05dc \u05de\u05ea\u05d5\u05d5\u05da MQTT \u05e9\u05dc\u05da.",
62
62
  "tls_insecure": "\u05d0\u05e4\u05e9\u05e8\u05d5\u05ea \u05dc\u05d4\u05ea\u05e2\u05dc\u05dd \u05de\u05d0\u05d9\u05de\u05d5\u05ea \u05ea\u05e2\u05d5\u05d3\u05ea \u05d4\u05e1\u05d5\u05db\u05df \u05e9\u05dc MQTT \u05e9\u05dc\u05da.",
63
- "transport": "\u05d4\u05ea\u05d7\u05d1\u05d5\u05e8\u05d4 \u05e9\u05ea\u05e9\u05de\u05e9 \u05dc\u05d7\u05d9\u05d1\u05d5\u05e8 \u05dc\u05e1\u05d5\u05db\u05df MQTT \u05e9\u05dc\u05da.",
63
+ "transport": "\u05d4\u05ea\u05e2\u05d1\u05d5\u05e8\u05d4 \u05e9\u05ea\u05e9\u05de\u05e9 \u05dc\u05d7\u05d9\u05d1\u05d5\u05e8 \u05dc\u05e1\u05d5\u05db\u05df MQTT \u05e9\u05dc\u05da.",
64
64
  "username": "\u05e9\u05dd \u05d4\u05de\u05e9\u05ea\u05de\u05e9 \u05dc\u05db\u05e0\u05d9\u05e1\u05d4 \u05dc\u05e1\u05d5\u05db\u05df MQTT \u05e9\u05dc\u05da.",
65
65
  "ws_headers": "\u05db\u05d5\u05ea\u05e8\u05d5\u05ea \u05d4-WebSocket \u05e2\u05d5\u05d1\u05e8\u05d5\u05ea \u05d3\u05e8\u05da \u05d4\u05d7\u05d9\u05d1\u05d5\u05e8 \u05d4\u05de\u05d1\u05d5\u05e1\u05e1 \u05e2\u05dc WebSocket \u05dc\u05e1\u05d5\u05db\u05df MQTT \u05e9\u05dc\u05da.",
66
66
  "ws_path": "\u05e0\u05ea\u05d9\u05d1 WebSocket \u05e9\u05d9\u05e9\u05de\u05e9 \u05dc\u05d7\u05d9\u05d1\u05d5\u05e8 \u05dc\u05e1\u05d5\u05db\u05df MQTT \u05e9\u05dc\u05da."
@@ -1037,7 +1037,7 @@
1037
1037
  "set_ca_cert": "\u05d1\u05d7\u05d9\u05e8\u05ea **\u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9** \u05dc\u05d0\u05d9\u05de\u05d5\u05ea CA \u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9 \u05d0\u05d5 **\u05de\u05d5\u05ea\u05d0\u05dd \u05d0\u05d9\u05e9\u05d9\u05ea** \u05d5\u05dc\u05d7\u05d9\u05e6\u05d4 \u05e2\u05dc **\u05d4\u05d1\u05d0** \u05db\u05d3\u05d9 \u05dc\u05d4\u05d2\u05d3\u05d9\u05e8 \u05d0\u05d9\u05e9\u05d5\u05e8 CA \u05de\u05d5\u05ea\u05d0\u05dd \u05d0\u05d9\u05e9\u05d9\u05ea \u05e9\u05d9\u05d0\u05e4\u05e9\u05e8 \u05d0\u05d9\u05de\u05d5\u05ea \u05ea\u05e2\u05d5\u05d3\u05ea \u05de\u05ea\u05d5\u05d5\u05db\u05d9 MQTT \u05e9\u05dc\u05da.",
1038
1038
  "set_client_cert": "\u05d4\u05e4\u05e2\u05dc\u05d4 \u05d5\u05dc\u05d7\u05d9\u05e6\u05d4 \u05e2\u05dc **\u05d4\u05d1\u05d0** \u05db\u05d3\u05d9 \u05dc\u05d4\u05d2\u05d3\u05d9\u05e8 \u05d0\u05d9\u05e9\u05d5\u05e8 \u05dc\u05e7\u05d5\u05d7 \u05d5\u05de\u05e4\u05ea\u05d7 \u05e4\u05e8\u05d8\u05d9 \u05dc\u05d0\u05d9\u05de\u05d5\u05ea \u05de\u05d5\u05dc \u05de\u05ea\u05d5\u05d5\u05da MQTT \u05e9\u05dc\u05da.",
1039
1039
  "tls_insecure": "\u05d0\u05e4\u05e9\u05e8\u05d5\u05ea \u05dc\u05d4\u05ea\u05e2\u05dc\u05dd \u05de\u05d0\u05d9\u05de\u05d5\u05ea \u05ea\u05e2\u05d5\u05d3\u05ea \u05d4\u05e1\u05d5\u05db\u05df \u05e9\u05dc MQTT \u05e9\u05dc\u05da.",
1040
- "transport": "\u05d4\u05ea\u05d7\u05d1\u05d5\u05e8\u05d4 \u05e9\u05ea\u05e9\u05de\u05e9 \u05dc\u05d7\u05d9\u05d1\u05d5\u05e8 \u05dc\u05e1\u05d5\u05db\u05df MQTT \u05e9\u05dc\u05da.",
1040
+ "transport": "\u05d4\u05ea\u05e2\u05d1\u05d5\u05e8\u05d4 \u05e9\u05ea\u05e9\u05de\u05e9 \u05dc\u05d7\u05d9\u05d1\u05d5\u05e8 \u05dc\u05e1\u05d5\u05db\u05df MQTT \u05e9\u05dc\u05da.",
1041
1041
  "username": "\u05e9\u05dd \u05d4\u05de\u05e9\u05ea\u05de\u05e9 \u05dc\u05db\u05e0\u05d9\u05e1\u05d4 \u05dc\u05e1\u05d5\u05db\u05df MQTT \u05e9\u05dc\u05da.",
1042
1042
  "ws_headers": "\u05db\u05d5\u05ea\u05e8\u05d5\u05ea \u05d4-WebSocket \u05e2\u05d5\u05d1\u05e8\u05d5\u05ea \u05d3\u05e8\u05da \u05d4\u05d7\u05d9\u05d1\u05d5\u05e8 \u05d4\u05de\u05d1\u05d5\u05e1\u05e1 \u05e2\u05dc WebSocket \u05dc\u05e1\u05d5\u05db\u05df MQTT \u05e9\u05dc\u05da.",
1043
1043
  "ws_path": "\u05e0\u05ea\u05d9\u05d1 WebSocket \u05e9\u05d9\u05e9\u05de\u05e9 \u05dc\u05d7\u05d9\u05d1\u05d5\u05e8 \u05dc\u05e1\u05d5\u05db\u05df MQTT \u05e9\u05dc\u05da."
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "config": {
3
3
  "abort": {
4
- "already_configured": "\u0423\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0430"
4
+ "already_configured": "\u0423\u0441\u043b\u0443\u0433\u0430\u0442\u0430 \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0430",
5
+ "reconfigure_successful": "\u041f\u0440\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u0431\u0435\u0448\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e"
5
6
  },
6
7
  "error": {
7
8
  "invalid_auth": "\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d API \u043a\u043b\u044e\u0447",
@@ -2,7 +2,8 @@
2
2
  "config": {
3
3
  "abort": {
4
4
  "already_configured": "\u0422\u043e\u0437\u0438 NextDNS \u043f\u0440\u043e\u0444\u0438\u043b \u0432\u0435\u0447\u0435 \u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d.",
5
- "reauth_successful": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u0442\u0430 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u043a\u0430\u0446\u0438\u044f \u0431\u0435\u0448\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u0430"
5
+ "reauth_successful": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u0442\u0430 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u043a\u0430\u0446\u0438\u044f \u0431\u0435\u0448\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u0430",
6
+ "reconfigure_successful": "\u041f\u0440\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u0431\u0435\u0448\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e"
6
7
  },
7
8
  "error": {
8
9
  "cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",
@@ -6,9 +6,6 @@
6
6
  },
7
7
  "step": {
8
8
  "user": {
9
- "data_description": {
10
- "_v_to_z": "City/county (V-Z) to receive warnings for"
11
- },
12
9
  "sections": {
13
10
  "filters": {
14
11
  "description": "\u0424\u0438\u043b\u0442\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f\u0442\u0430 \u0432\u044a\u0437 \u043e\u0441\u043d\u043e\u0432\u0430 \u043d\u0430 \u0442\u0435\u0445\u043d\u0438\u0442\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0438",
@@ -25,9 +22,6 @@
25
22
  },
26
23
  "step": {
27
24
  "init": {
28
- "data_description": {
29
- "_v_to_z": "City/county (V-Z) to receive warnings for"
30
- },
31
25
  "sections": {
32
26
  "filters": {
33
27
  "description": "\u0424\u0438\u043b\u0442\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f\u0442\u0430 \u0432\u044a\u0437 \u043e\u0441\u043d\u043e\u0432\u0430 \u043d\u0430 \u0442\u0435\u0445\u043d\u0438\u0442\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0438",
@@ -21,7 +21,23 @@
21
21
  "_e_to_h": "Ciudad/condado (E-H) para la que recibir advertencias",
22
22
  "_i_to_l": "Ciudad/condado (I-L) para la que recibir advertencias",
23
23
  "_m_to_q": "Ciudad/condado (M-Q) para la que recibir advertencias",
24
- "_r_to_u": "Ciudad/condado (R-U) para la que recibir advertencias"
24
+ "_r_to_u": "Ciudad/condado (R-U) para la que recibir advertencias",
25
+ "_v_to_z": "Ciudad/condado (V-Z) para la que recibir advertencias",
26
+ "slots": "N\u00famero m\u00e1ximo de advertencias por ciudad/condado"
27
+ },
28
+ "sections": {
29
+ "filters": {
30
+ "data": {
31
+ "area_filter": "Filtro de \u00e1rea afectada",
32
+ "headline_filter": "Lista de bloqueo de titulares"
33
+ },
34
+ "data_description": {
35
+ "area_filter": "Lista blanca de expresiones regulares para filtrar los avisos en funci\u00f3n de las zonas afectadas",
36
+ "headline_filter": "Expresi\u00f3n regular de lista negra para filtrar advertencias basadas en titulares"
37
+ },
38
+ "description": "Filtra las advertencias seg\u00fan sus atributos.",
39
+ "name": "Filtros"
40
+ }
25
41
  },
26
42
  "title": "Seleccionar ciudad/condado"
27
43
  }
@@ -44,6 +60,29 @@
44
60
  "_v_to_z": "Ciudad/condado (V-Z)",
45
61
  "slots": "M\u00e1ximo de advertencias"
46
62
  },
63
+ "data_description": {
64
+ "_a_to_d": "Ciudad/condado (A-D) para la que recibir advertencias",
65
+ "_e_to_h": "Ciudad/condado (E-H) para la que recibir advertencias",
66
+ "_i_to_l": "Ciudad/condado (I-L) para la que recibir advertencias",
67
+ "_m_to_q": "Ciudad/condado (M-Q) para la que recibir advertencias",
68
+ "_r_to_u": "Ciudad/condado (R-U) para la que recibir advertencias",
69
+ "_v_to_z": "Ciudad/condado (V-Z) para la que recibir advertencias",
70
+ "slots": "N\u00famero m\u00e1ximo de advertencias por ciudad/condado"
71
+ },
72
+ "sections": {
73
+ "filters": {
74
+ "data": {
75
+ "area_filter": "Filtro de \u00e1rea afectada",
76
+ "headline_filter": "Lista de bloqueo de titulares"
77
+ },
78
+ "data_description": {
79
+ "area_filter": "Lista blanca de expresiones regulares para filtrar los avisos en funci\u00f3n de las zonas afectadas",
80
+ "headline_filter": "Expresi\u00f3n regular de lista negra para filtrar advertencias basadas en titulares"
81
+ },
82
+ "description": "Filtra las advertencias seg\u00fan sus atributos.",
83
+ "name": "Filtros"
84
+ }
85
+ },
47
86
  "title": "Opciones"
48
87
  }
49
88
  }
@@ -11,6 +11,20 @@
11
11
  "data_description": {
12
12
  "slots": "Maksimalan broj upozorenja po gradu/okrugu"
13
13
  },
14
+ "sections": {
15
+ "filters": {
16
+ "data": {
17
+ "area_filter": "Filter pogo\u0111enih podru\u010dja",
18
+ "headline_filter": "Blok lista naslova"
19
+ },
20
+ "data_description": {
21
+ "area_filter": "Regex bela lista za filtriranje upozorenja na osnovu pogo\u0111enih podru\u010dja",
22
+ "headline_filter": "Regex crna lista za filtriranje upozorenja na osnovu naslova"
23
+ },
24
+ "description": "Filtrirajte upozorenja na osnovu njihovih atributa.",
25
+ "name": "Filteri"
26
+ }
27
+ },
14
28
  "title": "Izaberite grad/zemlju"
15
29
  }
16
30
  }
@@ -26,6 +40,20 @@
26
40
  "_r_to_u": "Grad/okrug (R\u2013U) za primanje upozorenja",
27
41
  "_v_to_z": "Grad/okrug (V\u2013\u017d) za primanje upozorenja",
28
42
  "slots": "Maksimalan broj upozorenja po gradu/okrugu"
43
+ },
44
+ "sections": {
45
+ "filters": {
46
+ "data": {
47
+ "area_filter": "Filter pogo\u0111enih podru\u010dja",
48
+ "headline_filter": "Blok lista naslova"
49
+ },
50
+ "data_description": {
51
+ "area_filter": "Regex bela lista za filtriranje upozorenja na osnovu pogo\u0111enih podru\u010dja",
52
+ "headline_filter": "Regex crna lista za filtriranje upozorenja na osnovu naslova"
53
+ },
54
+ "description": "Filtrirajte upozorenja na osnovu njihovih atributa.",
55
+ "name": "Filteri"
56
+ }
29
57
  }
30
58
  }
31
59
  }
@@ -9,5 +9,24 @@
9
9
  "invalid_auth": "\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0430 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u043a\u0430\u0446\u0438\u044f",
10
10
  "unknown": "\u041d\u0435\u043e\u0447\u0430\u043a\u0432\u0430\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430"
11
11
  }
12
+ },
13
+ "exceptions": {
14
+ "device_not_found": {
15
+ "message": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u0442\u043e \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043e."
16
+ }
17
+ },
18
+ "services": {
19
+ "add_bonus_time": {
20
+ "fields": {
21
+ "bonus_time": {
22
+ "name": "\u0411\u043e\u043d\u0443\u0441 \u0432\u0440\u0435\u043c\u0435"
23
+ },
24
+ "device_id": {
25
+ "example": "1234567890abcdef",
26
+ "name": "\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e"
27
+ }
28
+ },
29
+ "name": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0431\u043e\u043d\u0443\u0441 \u0432\u0440\u0435\u043c\u0435"
30
+ }
12
31
  }
13
32
  }
@@ -24,6 +24,9 @@
24
24
  "host": "Host",
25
25
  "port": "Puerto",
26
26
  "token": "Token de acceso"
27
+ },
28
+ "data_description": {
29
+ "host": "El nombre de host o la direcci\u00f3n IP de tu Nuki Bridge. Por ejemplo: {sample_ip}."
27
30
  }
28
31
  }
29
32
  }
@@ -49,6 +52,7 @@
49
52
  },
50
53
  "issues": {
51
54
  "https_webhook": {
55
+ "description": "El Nuki Bridge no puede enviar eventos a una direcci\u00f3n HTTPS (SSL). Por favor, configura una direcci\u00f3n HTTP (local) en \"URL de Home Assistant\" en la [configuraci\u00f3n de red]({network_link}). La direcci\u00f3n (local) actual es: `{base_url}`. Una direcci\u00f3n v\u00e1lida podr\u00eda ser, por ejemplo, `{sample_url}`, donde `{sample_ip}` es la IP del dispositivo Home Assistant.",
52
56
  "title": "La URL del webhook de Nuki utiliza HTTPS (SSL)"
53
57
  }
54
58
  },
@@ -36,7 +36,23 @@
36
36
  }
37
37
  }
38
38
  },
39
+ "entity": {
40
+ "number": {
41
+ "bed_temperature": {
42
+ "name": "Temperatura de la cama"
43
+ },
44
+ "extruder_n_temperature": {
45
+ "name": "Temperatura del extrusor {n}"
46
+ },
47
+ "extruder_temperature": {
48
+ "name": "Temperatura del extrusor"
49
+ }
50
+ }
51
+ },
39
52
  "exceptions": {
53
+ "error_setting_temperature": {
54
+ "message": "Error al configurar la temperatura deseada de {tool}"
55
+ },
40
56
  "missing_client": {
41
57
  "message": "No hay cliente para el ID del dispositivo: {device_id}"
42
58
  }
@@ -70,6 +70,7 @@
70
70
  "state": {
71
71
  "charging": "Cargando",
72
72
  "final_test": "Prueba final",
73
+ "flight_menu": "Men\u00fa de vuelo",
73
74
  "idle": "Inactivo",
74
75
  "initializing": "Inicializando",
75
76
  "off": "Apagado",
@@ -40,7 +40,8 @@
40
40
  "host": "\u201eOverkiz\u201c centro pagrindinio kompiuterio pavadinimas arba IP adresas.",
41
41
  "token": "\u017denklas, kur\u012f sugeneravo programa, naudojama j\u016bs\u0173 \u012frenginiui valdyti.",
42
42
  "verify_ssl": "Patikrinkite SSL sertifikat\u0105. Pasirinkite tai tik tuo atveju, jei jungiat\u0117s naudodami pagrindinio kompiuterio pavadinim\u0105."
43
- }
43
+ },
44
+ "description": "Aktyvuodami [TaHoma \u012frenginio k\u016br\u0117jo re\u017eim\u0105] ( {somfy_developer_mode_docs} ), galite \u012fgalioti tre\u010di\u0173j\u0173 \u0161ali\u0173 programin\u0119 \u012frang\u0105 (pvz., Home Assistant) prisijungti prie jo per j\u016bs\u0173 vietin\u012f tinkl\u0105. \n \n 1. Savo \u012frenginyje atidarykite program\u0117l\u0119 TaHoma By Somfy. \n 2. Programoje eikite \u012f meniu Pagalba & i\u0161pl\u0117stin\u0117s funkcijos\u201c -> I\u0161pl\u0117stin\u0117s funkcijos. \n 3. \u012ejunkite k\u016br\u0117jo re\u017eim\u0105 7 kartus bakstel\u0117dami savo \u0161liuzo versijos numer\u012f (pvz., 2025.1.4-11). \n 4. K\u016br\u0117jo re\u017eimo meniu sugeneruokite prieigos rakt\u0105, kad autentifikuotum\u0117te API i\u0161kvietimus. \n \n 5. \u012eveskite sugeneruot\u0105 prieigos rakt\u0105 \u017eemiau ir atnaujinkite pagrindin\u012f kompiuter\u012f, \u012ftraukdami savo \u0161liuzo PIN kod\u0105 arba \u0161liuzo IP adres\u0105."
44
45
  },
45
46
  "local_or_cloud": {
46
47
  "data": {
@@ -2,6 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from dataclasses import dataclass
5
6
  from typing import Any
6
7
 
7
8
  from homeassistant.components.climate import (
@@ -13,18 +14,44 @@ from homeassistant.components.climate import (
13
14
  HVACAction,
14
15
  HVACMode,
15
16
  )
16
- from homeassistant.const import ATTR_TEMPERATURE, UnitOfTemperature
17
+ from homeassistant.const import ATTR_TEMPERATURE, STATE_OFF, STATE_ON, UnitOfTemperature
17
18
  from homeassistant.core import HomeAssistant, callback
19
+ from homeassistant.exceptions import HomeAssistantError
18
20
  from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
21
+ from homeassistant.helpers.restore_state import ExtraStoredData, RestoreEntity
19
22
 
20
23
  from .const import DOMAIN, MASTER_THERMOSTATS
21
24
  from .coordinator import PlugwiseConfigEntry, PlugwiseDataUpdateCoordinator
22
25
  from .entity import PlugwiseEntity
23
26
  from .util import plugwise_command
24
27
 
28
+ ERROR_NO_SCHEDULE = "set_schedule_first"
25
29
  PARALLEL_UPDATES = 0
26
30
 
27
31
 
32
+ @dataclass
33
+ class PlugwiseClimateExtraStoredData(ExtraStoredData):
34
+ """Object to hold extra stored data."""
35
+
36
+ last_active_schedule: str | None
37
+ previous_action_mode: str | None
38
+
39
+ def as_dict(self) -> dict[str, Any]:
40
+ """Return a dict representation of the text data."""
41
+ return {
42
+ "last_active_schedule": self.last_active_schedule,
43
+ "previous_action_mode": self.previous_action_mode,
44
+ }
45
+
46
+ @classmethod
47
+ def from_dict(cls, restored: dict[str, Any]) -> PlugwiseClimateExtraStoredData:
48
+ """Initialize a stored data object from a dict."""
49
+ return cls(
50
+ last_active_schedule=restored.get("last_active_schedule"),
51
+ previous_action_mode=restored.get("previous_action_mode"),
52
+ )
53
+
54
+
28
55
  async def async_setup_entry(
29
56
  hass: HomeAssistant,
30
57
  entry: PlugwiseConfigEntry,
@@ -56,14 +83,26 @@ async def async_setup_entry(
56
83
  entry.async_on_unload(coordinator.async_add_listener(_add_entities))
57
84
 
58
85
 
59
- class PlugwiseClimateEntity(PlugwiseEntity, ClimateEntity):
86
+ class PlugwiseClimateEntity(PlugwiseEntity, ClimateEntity, RestoreEntity):
60
87
  """Representation of a Plugwise thermostat."""
61
88
 
62
89
  _attr_name = None
63
90
  _attr_temperature_unit = UnitOfTemperature.CELSIUS
64
91
  _attr_translation_key = DOMAIN
65
92
 
66
- _previous_mode: str = "heating"
93
+ _last_active_schedule: str | None = None
94
+ _previous_action_mode: str | None = HVACAction.HEATING.value
95
+
96
+ async def async_added_to_hass(self) -> None:
97
+ """Run when entity about to be added."""
98
+ await super().async_added_to_hass()
99
+
100
+ if extra_data := await self.async_get_last_extra_data():
101
+ plugwise_extra_data = PlugwiseClimateExtraStoredData.from_dict(
102
+ extra_data.as_dict()
103
+ )
104
+ self._last_active_schedule = plugwise_extra_data.last_active_schedule
105
+ self._previous_action_mode = plugwise_extra_data.previous_action_mode
67
106
 
68
107
  def __init__(
69
108
  self,
@@ -76,7 +115,6 @@ class PlugwiseClimateEntity(PlugwiseEntity, ClimateEntity):
76
115
 
77
116
  gateway_id: str = coordinator.api.gateway_id
78
117
  self._gateway_data = coordinator.data[gateway_id]
79
-
80
118
  self._location = device_id
81
119
  if (location := self.device.get("location")) is not None:
82
120
  self._location = location
@@ -105,25 +143,19 @@ class PlugwiseClimateEntity(PlugwiseEntity, ClimateEntity):
105
143
  self.device["thermostat"]["resolution"], 0.1
106
144
  )
107
145
 
108
- def _previous_action_mode(self, coordinator: PlugwiseDataUpdateCoordinator) -> None:
109
- """Return the previous action-mode when the regulation-mode is not heating or cooling.
110
-
111
- Helper for set_hvac_mode().
112
- """
113
- # When no cooling available, _previous_mode is always heating
114
- if (
115
- "regulation_modes" in self._gateway_data
116
- and "cooling" in self._gateway_data["regulation_modes"]
117
- ):
118
- mode = self._gateway_data["select_regulation_mode"]
119
- if mode in ("cooling", "heating"):
120
- self._previous_mode = mode
121
-
122
146
  @property
123
147
  def current_temperature(self) -> float:
124
148
  """Return the current temperature."""
125
149
  return self.device["sensors"]["temperature"]
126
150
 
151
+ @property
152
+ def extra_restore_state_data(self) -> PlugwiseClimateExtraStoredData:
153
+ """Return text specific state data to be restored."""
154
+ return PlugwiseClimateExtraStoredData(
155
+ last_active_schedule=self._last_active_schedule,
156
+ previous_action_mode=self._previous_action_mode,
157
+ )
158
+
127
159
  @property
128
160
  def target_temperature(self) -> float:
129
161
  """Return the temperature we try to reach.
@@ -170,9 +202,10 @@ class PlugwiseClimateEntity(PlugwiseEntity, ClimateEntity):
170
202
 
171
203
  if self.coordinator.api.cooling_present:
172
204
  if "regulation_modes" in self._gateway_data:
173
- if self._gateway_data["select_regulation_mode"] == "cooling":
205
+ selected = self._gateway_data.get("select_regulation_mode")
206
+ if selected == HVACAction.COOLING.value:
174
207
  hvac_modes.append(HVACMode.COOL)
175
- if self._gateway_data["select_regulation_mode"] == "heating":
208
+ if selected == HVACAction.HEATING.value:
176
209
  hvac_modes.append(HVACMode.HEAT)
177
210
  else:
178
211
  hvac_modes.append(HVACMode.HEAT_COOL)
@@ -184,8 +217,16 @@ class PlugwiseClimateEntity(PlugwiseEntity, ClimateEntity):
184
217
  @property
185
218
  def hvac_action(self) -> HVACAction:
186
219
  """Return the current running hvac operation if supported."""
187
- # Keep track of the previous action-mode
188
- self._previous_action_mode(self.coordinator)
220
+ # Keep track of the previous hvac_action mode.
221
+ # When no cooling available, _previous_action_mode is always heating
222
+ if (
223
+ "regulation_modes" in self._gateway_data
224
+ and HVACAction.COOLING.value in self._gateway_data["regulation_modes"]
225
+ ):
226
+ mode = self._gateway_data["select_regulation_mode"]
227
+ if mode in (HVACAction.COOLING.value, HVACAction.HEATING.value):
228
+ self._previous_action_mode = mode
229
+
189
230
  if (action := self.device.get("control_state")) is not None:
190
231
  return HVACAction(action)
191
232
 
@@ -219,14 +260,33 @@ class PlugwiseClimateEntity(PlugwiseEntity, ClimateEntity):
219
260
  return
220
261
 
221
262
  if hvac_mode == HVACMode.OFF:
222
- await self.coordinator.api.set_regulation_mode(hvac_mode)
263
+ await self.coordinator.api.set_regulation_mode(hvac_mode.value)
223
264
  else:
265
+ current = self.device.get("select_schedule")
266
+ desired = current
267
+
268
+ # Capture the last valid schedule
269
+ if desired and desired != "off":
270
+ self._last_active_schedule = desired
271
+ elif desired == "off":
272
+ desired = self._last_active_schedule
273
+
274
+ # Enabling HVACMode.AUTO requires a previously set schedule for saving and restoring
275
+ if hvac_mode == HVACMode.AUTO and not desired:
276
+ raise HomeAssistantError(
277
+ translation_domain=DOMAIN,
278
+ translation_key=ERROR_NO_SCHEDULE,
279
+ )
280
+
224
281
  await self.coordinator.api.set_schedule_state(
225
282
  self._location,
226
- "on" if hvac_mode == HVACMode.AUTO else "off",
283
+ STATE_ON if hvac_mode == HVACMode.AUTO else STATE_OFF,
284
+ desired,
227
285
  )
228
- if self.hvac_mode == HVACMode.OFF:
229
- await self.coordinator.api.set_regulation_mode(self._previous_mode)
286
+ if self.hvac_mode == HVACMode.OFF and self._previous_action_mode:
287
+ await self.coordinator.api.set_regulation_mode(
288
+ self._previous_action_mode
289
+ )
230
290
 
231
291
  @plugwise_command
232
292
  async def async_set_preset_mode(self, preset_mode: str) -> None:
@@ -8,6 +8,6 @@
8
8
  "iot_class": "local_polling",
9
9
  "loggers": ["plugwise"],
10
10
  "quality_scale": "platinum",
11
- "requirements": ["plugwise==1.8.2"],
11
+ "requirements": ["plugwise==1.8.3"],
12
12
  "zeroconf": ["_plugwise._tcp.local."]
13
13
  }
@@ -314,6 +314,9 @@
314
314
  "invalid_xml_data": {
315
315
  "message": "[%key:component::plugwise::config::error::response_error%]"
316
316
  },
317
+ "set_schedule_first": {
318
+ "message": "Failed setting HVACMode, set a schedule first."
319
+ },
317
320
  "unsupported_firmware": {
318
321
  "message": "[%key:component::plugwise::config::error::unsupported%]"
319
322
  }
@@ -314,6 +314,9 @@
314
314
  "invalid_xml_data": {
315
315
  "message": "Ung\u00fcltige XML-Daten oder Fehleranzeige empfangen"
316
316
  },
317
+ "set_schedule_first": {
318
+ "message": "Fehler beim Einstellen des HLK-Modus, lege zuerst einen Zeitplan fest."
319
+ },
317
320
  "unsupported_firmware": {
318
321
  "message": "Ger\u00e4t mit nicht unterst\u00fctzter Firmware"
319
322
  }
@@ -314,6 +314,9 @@
314
314
  "invalid_xml_data": {
315
315
  "message": "Invalid XML data, or error indication received"
316
316
  },
317
+ "set_schedule_first": {
318
+ "message": "Failed setting HVACMode, set a schedule first."
319
+ },
317
320
  "unsupported_firmware": {
318
321
  "message": "Device with unsupported firmware"
319
322
  }
@@ -314,6 +314,9 @@
314
314
  "invalid_xml_data": {
315
315
  "message": "Neplatn\u00e9 \u00fadaje XML alebo prijat\u00e9 chybov\u00e9 hl\u00e1senie"
316
316
  },
317
+ "set_schedule_first": {
318
+ "message": "Nastavenie re\u017eimu HVAC zlyhalo, najprv nastavte pl\u00e1n."
319
+ },
317
320
  "unsupported_firmware": {
318
321
  "message": "Zariadenie s nepodporovan\u00fdm firmv\u00e9rom"
319
322
  }
@@ -2,7 +2,8 @@
2
2
  "config": {
3
3
  "abort": {
4
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
- "reauth_successful": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u0442\u0430 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u043a\u0430\u0446\u0438\u044f \u0431\u0435\u0448\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u0430"
5
+ "reauth_successful": "\u041f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u0442\u0430 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u043a\u0430\u0446\u0438\u044f \u0431\u0435\u0448\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u0430",
6
+ "reconfigure_successful": "\u041f\u0440\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043d\u0435\u0442\u043e \u0431\u0435\u0448\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e"
6
7
  },
7
8
  "error": {
8
9
  "cannot_connect": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0432\u044a\u0440\u0437\u0432\u0430\u043d\u0435",
@@ -10,6 +11,12 @@
10
11
  "unknown": "\u041d\u0435\u043e\u0447\u0430\u043a\u0432\u0430\u043d\u0430 \u0433\u0440\u0435\u0448\u043a\u0430"
11
12
  },
12
13
  "step": {
14
+ "reconfigure": {
15
+ "data": {
16
+ "url": "URL",
17
+ "verify_ssl": "\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 SSL \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430"
18
+ }
19
+ },
13
20
  "user": {
14
21
  "data": {
15
22
  "url": "URL",
@@ -14,7 +14,9 @@
14
14
  "api_token": "API pristupni token za autentifikaciju sa Portainer\u2011om",
15
15
  "url": "URL, uklju\u010duju\u0107i port, tvoje Portainer instance",
16
16
  "verify_ssl": "Da li da se verifikuju SSL sertifikati. Onemogu\u0107i samo ako ima\u0161 samopotpisani sertifikat."
17
- }
17
+ },
18
+ "description": "Upotrebite slede\u0107i obrazac da ponovo konfiguri\u0161ete svoju Portainer instancu.",
19
+ "title": "Ponovo konfiguri\u0161i Portainer integraciju"
18
20
  },
19
21
  "user": {
20
22
  "data": {
@@ -45,5 +45,10 @@
45
45
  "name": "Tensi\u00f3n del rel\u00e9"
46
46
  }
47
47
  }
48
+ },
49
+ "exceptions": {
50
+ "no_bleak_scanner": {
51
+ "message": "No se ha encontrado ning\u00fan esc\u00e1ner Bluetooth compatible."
52
+ }
48
53
  }
49
54
  }
@@ -3,7 +3,9 @@
3
3
  "abort": {
4
4
  "already_configured": "El dispositivo ya est\u00e1 configurado",
5
5
  "credential_error": "Error al obtener las credenciales.",
6
- "no_devices_found": "No se encontraron dispositivos en la red"
6
+ "no_devices_found": "No se encontraron dispositivos en la red",
7
+ "port_987_bind_error": "No se pudo enlazar con el puerto 987. Consulta la [documentaci\u00f3n]({ps4_docs_url}) para obtener informaci\u00f3n adicional.",
8
+ "port_997_bind_error": "No se pudo enlazar con el puerto 997. Consulta la [documentaci\u00f3n]({ps4_docs_url}) para obtener informaci\u00f3n adicional."
7
9
  },
8
10
  "error": {
9
11
  "cannot_connect": "No se pudo conectar",
@@ -13,6 +15,12 @@
13
15
  },
14
16
  "step": {
15
17
  "creds": {
18
+ "data": {
19
+ "token": "Token de PSN"
20
+ },
21
+ "data_description": {
22
+ "token": "Para obtener tu token de PSN, por favor, sigue estas [instrucciones]({ps4_docs_url})."
23
+ },
16
24
  "description": "Credenciales necesarias. Pulsa **Enviar** y luego en la aplicaci\u00f3n PS4 Second Screen, actualiza los dispositivos y selecciona el dispositivo **Home-Assistant** para continuar."
17
25
  },
18
26
  "link": {
@@ -19,5 +19,5 @@
19
19
  "iot_class": "local_push",
20
20
  "loggers": ["reolink_aio"],
21
21
  "quality_scale": "platinum",
22
- "requirements": ["reolink-aio==0.16.3"]
22
+ "requirements": ["reolink-aio==0.16.4"]
23
23
  }
@@ -835,6 +835,7 @@
835
835
  "vehicle_type": {
836
836
  "name": "Typ vozidla",
837
837
  "state": {
838
+ "bus": "Autobus",
838
839
  "motorcycle": "Motocykl",
839
840
  "pickup_truck": "Pickup",
840
841
  "sedan": "Sedan",
@@ -835,6 +835,7 @@
835
835
  "vehicle_type": {
836
836
  "name": "Vehicle type",
837
837
  "state": {
838
+ "bus": "Bus",
838
839
  "motorcycle": "Motorcycle",
839
840
  "pickup_truck": "Pickup truck",
840
841
  "sedan": "Saloon",
@@ -835,6 +835,7 @@
835
835
  "vehicle_type": {
836
836
  "name": "Tipo de veh\u00edculo",
837
837
  "state": {
838
+ "bus": "Autob\u00fas",
838
839
  "motorcycle": "Motocicleta",
839
840
  "pickup_truck": "Camioneta pickup",
840
841
  "sedan": "Berlina",
@@ -835,6 +835,7 @@
835
835
  "vehicle_type": {
836
836
  "name": "S\u00f5iduki t\u00fc\u00fcp",
837
837
  "state": {
838
+ "bus": "Buss",
838
839
  "motorcycle": "Mootorratas",
839
840
  "pickup_truck": "Kastiauto",
840
841
  "sedan": "Sedaan",
@@ -835,6 +835,7 @@
835
835
  "vehicle_type": {
836
836
  "name": "Transporto priemon\u0117s tipas",
837
837
  "state": {
838
+ "bus": "Autobusas",
838
839
  "motorcycle": "Motociklas",
839
840
  "pickup_truck": "Pikapas",
840
841
  "sedan": "Sedanas",