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
@@ -3,6 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from collections.abc import Sequence
6
+ import dataclasses
6
7
  import fnmatch
7
8
  import os
8
9
 
@@ -29,15 +30,6 @@ def usb_device_from_port(port: ListPortInfo) -> USBDevice:
29
30
 
30
31
  def scan_serial_ports() -> Sequence[USBDevice]:
31
32
  """Scan serial ports for USB devices."""
32
- return [
33
- usb_device_from_port(port)
34
- for port in comports()
35
- if port.vid is not None or port.pid is not None
36
- ]
37
-
38
-
39
- def usb_device_from_path(device_path: str) -> USBDevice | None:
40
- """Get USB device info from a device path."""
41
33
 
42
34
  # Scan all symlinks first
43
35
  by_id = "/dev/serial/by-id"
@@ -46,23 +38,30 @@ def usb_device_from_path(device_path: str) -> USBDevice | None:
46
38
  for path in (entry.path for entry in os.scandir(by_id) if entry.is_symlink()):
47
39
  realpath_to_by_id[os.path.realpath(path)] = path
48
40
 
49
- # Then compare the actual path to each serial port's
41
+ serial_ports = []
42
+
43
+ for port in comports():
44
+ if port.vid is not None or port.pid is not None:
45
+ usb_device = usb_device_from_port(port)
46
+ device_path = realpath_to_by_id.get(port.device, port.device)
47
+
48
+ if device_path != port.device:
49
+ # Prefer the unique /dev/serial/by-id/ path if it exists
50
+ usb_device = dataclasses.replace(usb_device, device=device_path)
51
+
52
+ serial_ports.append(usb_device)
53
+
54
+ return serial_ports
55
+
56
+
57
+ def usb_device_from_path(device_path: str) -> USBDevice | None:
58
+ """Get USB device info from a device path."""
59
+
50
60
  device_path_real = os.path.realpath(device_path)
51
61
 
52
62
  for device in scan_serial_ports():
53
- normalized_path = realpath_to_by_id.get(device.device, device.device)
54
- if (
55
- normalized_path == device_path
56
- or os.path.realpath(device.device) == device_path_real
57
- ):
58
- return USBDevice(
59
- device=normalized_path,
60
- vid=device.vid,
61
- pid=device.pid,
62
- serial_number=device.serial_number,
63
- manufacturer=device.manufacturer,
64
- description=device.description,
65
- )
63
+ if os.path.realpath(device.device) == device_path_real:
64
+ return device
66
65
 
67
66
  return None
68
67
 
@@ -37,7 +37,7 @@ _LOGGER = logging.getLogger(__name__)
37
37
 
38
38
  VS_TO_HA_MODE_MAP = {
39
39
  VS_HUMIDIFIER_MODE_AUTO: MODE_AUTO,
40
- VS_HUMIDIFIER_MODE_HUMIDITY: MODE_AUTO,
40
+ VS_HUMIDIFIER_MODE_HUMIDITY: VS_HUMIDIFIER_MODE_HUMIDITY,
41
41
  VS_HUMIDIFIER_MODE_MANUAL: MODE_NORMAL,
42
42
  VS_HUMIDIFIER_MODE_SLEEP: MODE_SLEEP,
43
43
  }
@@ -93,6 +93,8 @@ class VeSyncHumidifierHA(VeSyncBaseEntity, HumidifierEntity):
93
93
 
94
94
  _attr_supported_features = HumidifierEntityFeature.MODES
95
95
 
96
+ _attr_translation_key = "vesync"
97
+
96
98
  def __init__(
97
99
  self,
98
100
  device: VeSyncBaseDevice,
@@ -49,6 +49,17 @@
49
49
  }
50
50
  }
51
51
  },
52
+ "humidifier": {
53
+ "vesync": {
54
+ "state_attributes": {
55
+ "mode": {
56
+ "state": {
57
+ "humidity": "Humidity"
58
+ }
59
+ }
60
+ }
61
+ }
62
+ },
52
63
  "number": {
53
64
  "mist_level": {
54
65
  "name": "Mist level"
@@ -24,6 +24,17 @@
24
24
  }
25
25
  },
26
26
  "entity": {
27
+ "humidifier": {
28
+ "vesync": {
29
+ "state_attributes": {
30
+ "mode": {
31
+ "state": {
32
+ "humidity": "\u0412\u043b\u0430\u0436\u043d\u043e\u0441\u0442"
33
+ }
34
+ }
35
+ }
36
+ }
37
+ },
27
38
  "number": {
28
39
  "mist_level": {
29
40
  "name": "\u041d\u0438\u0432\u043e \u043d\u0430 \u043c\u044a\u0433\u043b\u0430\u0442\u0430"
@@ -49,6 +49,17 @@
49
49
  }
50
50
  }
51
51
  },
52
+ "humidifier": {
53
+ "vesync": {
54
+ "state_attributes": {
55
+ "mode": {
56
+ "state": {
57
+ "humidity": "Vlhkost"
58
+ }
59
+ }
60
+ }
61
+ }
62
+ },
52
63
  "number": {
53
64
  "mist_level": {
54
65
  "name": "\u00darove\u0148 mlhy"
@@ -49,6 +49,17 @@
49
49
  }
50
50
  }
51
51
  },
52
+ "humidifier": {
53
+ "vesync": {
54
+ "state_attributes": {
55
+ "mode": {
56
+ "state": {
57
+ "humidity": "Luftfeuchtigkeit"
58
+ }
59
+ }
60
+ }
61
+ }
62
+ },
52
63
  "number": {
53
64
  "mist_level": {
54
65
  "name": "Nebelstufe"
@@ -49,6 +49,17 @@
49
49
  }
50
50
  }
51
51
  },
52
+ "humidifier": {
53
+ "vesync": {
54
+ "state_attributes": {
55
+ "mode": {
56
+ "state": {
57
+ "humidity": "Humidity"
58
+ }
59
+ }
60
+ }
61
+ }
62
+ },
52
63
  "number": {
53
64
  "mist_level": {
54
65
  "name": "Mist level"
@@ -49,6 +49,17 @@
49
49
  }
50
50
  }
51
51
  },
52
+ "humidifier": {
53
+ "vesync": {
54
+ "state_attributes": {
55
+ "mode": {
56
+ "state": {
57
+ "humidity": "Humedad"
58
+ }
59
+ }
60
+ }
61
+ }
62
+ },
52
63
  "number": {
53
64
  "mist_level": {
54
65
  "name": "Nivel de niebla"
@@ -49,6 +49,17 @@
49
49
  }
50
50
  }
51
51
  },
52
+ "humidifier": {
53
+ "vesync": {
54
+ "state_attributes": {
55
+ "mode": {
56
+ "state": {
57
+ "humidity": "Niiskus"
58
+ }
59
+ }
60
+ }
61
+ }
62
+ },
52
63
  "number": {
53
64
  "mist_level": {
54
65
  "name": "Udu tase"
@@ -39,6 +39,17 @@
39
39
  }
40
40
  }
41
41
  },
42
+ "humidifier": {
43
+ "vesync": {
44
+ "state_attributes": {
45
+ "mode": {
46
+ "state": {
47
+ "humidity": "\u05dc\u05d7\u05d5\u05ea"
48
+ }
49
+ }
50
+ }
51
+ }
52
+ },
42
53
  "select": {
43
54
  "night_light_level": {
44
55
  "state": {
@@ -49,6 +49,17 @@
49
49
  }
50
50
  }
51
51
  },
52
+ "humidifier": {
53
+ "vesync": {
54
+ "state_attributes": {
55
+ "mode": {
56
+ "state": {
57
+ "humidity": "Dr\u0117gm\u0117"
58
+ }
59
+ }
60
+ }
61
+ }
62
+ },
52
63
  "number": {
53
64
  "mist_level": {
54
65
  "name": "R\u016bko lygis"
@@ -49,6 +49,17 @@
49
49
  }
50
50
  }
51
51
  },
52
+ "humidifier": {
53
+ "vesync": {
54
+ "state_attributes": {
55
+ "mode": {
56
+ "state": {
57
+ "humidity": "Vlhkos\u0165"
58
+ }
59
+ }
60
+ }
61
+ }
62
+ },
52
63
  "number": {
53
64
  "mist_level": {
54
65
  "name": "\u00darove\u0148 hmly"
@@ -49,6 +49,17 @@
49
49
  }
50
50
  }
51
51
  },
52
+ "humidifier": {
53
+ "vesync": {
54
+ "state_attributes": {
55
+ "mode": {
56
+ "state": {
57
+ "humidity": "\u6e7f\u5ea6"
58
+ }
59
+ }
60
+ }
61
+ }
62
+ },
52
63
  "number": {
53
64
  "mist_level": {
54
65
  "name": "\u96fe\u5316\u7a0b\u5ea6"
@@ -49,6 +49,17 @@
49
49
  }
50
50
  }
51
51
  },
52
+ "humidifier": {
53
+ "vesync": {
54
+ "state_attributes": {
55
+ "mode": {
56
+ "state": {
57
+ "humidity": "\u6fd5\u5ea6"
58
+ }
59
+ }
60
+ }
61
+ }
62
+ },
52
63
  "number": {
53
64
  "mist_level": {
54
65
  "name": "\u9727\u5ea6"
@@ -44,6 +44,11 @@
44
44
  "name": "\u0421\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f"
45
45
  }
46
46
  },
47
+ "device_tracker": {
48
+ "location": {
49
+ "name": "\u041c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435"
50
+ }
51
+ },
47
52
  "sensor": {
48
53
  "availability": {
49
54
  "state": {
@@ -210,6 +210,11 @@
210
210
  "name": "Troubit a blikat"
211
211
  }
212
212
  },
213
+ "device_tracker": {
214
+ "location": {
215
+ "name": "Poloha"
216
+ }
217
+ },
213
218
  "sensor": {
214
219
  "availability": {
215
220
  "name": "P\u0159ipojen\u00ed k vozidlu",
@@ -210,6 +210,11 @@
210
210
  "name": "Honk & flash"
211
211
  }
212
212
  },
213
+ "device_tracker": {
214
+ "location": {
215
+ "name": "Location"
216
+ }
217
+ },
213
218
  "sensor": {
214
219
  "availability": {
215
220
  "name": "Car connection",
@@ -194,6 +194,12 @@
194
194
  "climatization_stop": {
195
195
  "name": "Detener la climatizaci\u00f3n"
196
196
  },
197
+ "engine_start": {
198
+ "name": "Arrancar el motor"
199
+ },
200
+ "engine_stop": {
201
+ "name": "Detener el motor"
202
+ },
197
203
  "flash": {
198
204
  "name": "Destello"
199
205
  },
@@ -204,6 +210,11 @@
204
210
  "name": "Claxon y destello"
205
211
  }
206
212
  },
213
+ "device_tracker": {
214
+ "location": {
215
+ "name": "Ubicaci\u00f3n"
216
+ }
217
+ },
207
218
  "sensor": {
208
219
  "availability": {
209
220
  "name": "Conexi\u00f3n del coche",
@@ -210,6 +210,11 @@
210
210
  "name": "Signalas & blykst\u0117"
211
211
  }
212
212
  },
213
+ "device_tracker": {
214
+ "location": {
215
+ "name": "Vieta"
216
+ }
217
+ },
213
218
  "sensor": {
214
219
  "availability": {
215
220
  "name": "Automobilio jungtis",
@@ -210,6 +210,11 @@
210
210
  "name": "Tr\u00fabenie a blikanie"
211
211
  }
212
212
  },
213
+ "device_tracker": {
214
+ "location": {
215
+ "name": "Umiestnenie"
216
+ }
217
+ },
213
218
  "sensor": {
214
219
  "availability": {
215
220
  "name": "Pripojenie vozidla",
@@ -49,6 +49,28 @@
49
49
  "end_time": {
50
50
  "name": "\u041a\u0440\u0430\u0435\u043d \u0447\u0430\u0441"
51
51
  },
52
+ "oven_current_temperature": {
53
+ "name": "\u0422\u0435\u043a\u0443\u0449\u0430 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430"
54
+ },
55
+ "oven_state": {
56
+ "name": "\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435",
57
+ "state": {
58
+ "cooking": "\u0413\u043e\u0442\u0432\u0435\u043d\u0435",
59
+ "preheating": "\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u043d\u043e \u0437\u0430\u0433\u0440\u044f\u0432\u0430\u043d\u0435"
60
+ }
61
+ },
62
+ "oven_state_lower": {
63
+ "state": {
64
+ "cooking": "\u0413\u043e\u0442\u0432\u0435\u043d\u0435",
65
+ "preheating": "\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u043d\u043e \u0437\u0430\u0433\u0440\u044f\u0432\u0430\u043d\u0435"
66
+ }
67
+ },
68
+ "oven_state_upper": {
69
+ "state": {
70
+ "cooking": "\u0413\u043e\u0442\u0432\u0435\u043d\u0435",
71
+ "preheating": "\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u043d\u043e \u0437\u0430\u0433\u0440\u044f\u0432\u0430\u043d\u0435"
72
+ }
73
+ },
52
74
  "washer_state": {
53
75
  "name": "\u0421\u044a\u0441\u0442\u043e\u044f\u043d\u0438\u0435",
54
76
  "state": {
@@ -80,6 +80,87 @@
80
80
  "end_time": {
81
81
  "name": "Hora de finalizaci\u00f3n"
82
82
  },
83
+ "oven_cook_mode": {
84
+ "name": "Modo de cocci\u00f3n",
85
+ "state": {
86
+ "air_fry": "Freidora de aire",
87
+ "bake": "Hornear",
88
+ "broil": "Asar",
89
+ "convection_bake": "Horneado por convecci\u00f3n",
90
+ "convection_broil": "Parrilla de convecci\u00f3n",
91
+ "convection_roast": "Asado por convecci\u00f3n",
92
+ "keep_warm": "Mantener el calor",
93
+ "standby": "En espera"
94
+ }
95
+ },
96
+ "oven_cook_mode_lower": {
97
+ "name": "Modo de cocci\u00f3n del horno inferior",
98
+ "state": {
99
+ "air_fry": "Freidora de aire",
100
+ "bake": "Hornear",
101
+ "broil": "Asar",
102
+ "convection_bake": "Horneado por convecci\u00f3n",
103
+ "convection_broil": "Parrilla de convecci\u00f3n",
104
+ "convection_roast": "Asado por convecci\u00f3n",
105
+ "keep_warm": "Mantener el calor",
106
+ "standby": "En espera"
107
+ }
108
+ },
109
+ "oven_cook_mode_upper": {
110
+ "name": "Modo de cocci\u00f3n del horno superior",
111
+ "state": {
112
+ "air_fry": "Freidora de aire",
113
+ "bake": "Hornear",
114
+ "broil": "Asar",
115
+ "convection_bake": "Horneado por convecci\u00f3n",
116
+ "convection_broil": "Parrilla de convecci\u00f3n",
117
+ "convection_roast": "Asado por convecci\u00f3n",
118
+ "keep_warm": "Mantener el calor",
119
+ "standby": "En espera"
120
+ }
121
+ },
122
+ "oven_current_temperature": {
123
+ "name": "Temperatura actual"
124
+ },
125
+ "oven_current_temperature_lower": {
126
+ "name": "Temperatura actual del horno inferior"
127
+ },
128
+ "oven_current_temperature_upper": {
129
+ "name": "Temperatura actual del horno superior"
130
+ },
131
+ "oven_state": {
132
+ "name": "Estado",
133
+ "state": {
134
+ "cooking": "Cocinando",
135
+ "preheating": "Precalentamiento",
136
+ "standby": "En espera"
137
+ }
138
+ },
139
+ "oven_state_lower": {
140
+ "name": "Estado del horno inferior",
141
+ "state": {
142
+ "cooking": "Cocinando",
143
+ "preheating": "Precalentamiento",
144
+ "standby": "En espera"
145
+ }
146
+ },
147
+ "oven_state_upper": {
148
+ "name": "Estado del horno superior",
149
+ "state": {
150
+ "cooking": "Cocinando",
151
+ "preheating": "Precalentamiento",
152
+ "standby": "En espera"
153
+ }
154
+ },
155
+ "oven_target_temperature": {
156
+ "name": "Temperatura deseada"
157
+ },
158
+ "oven_target_temperature_lower": {
159
+ "name": "Temperatura deseada del horno inferior"
160
+ },
161
+ "oven_target_temperature_upper": {
162
+ "name": "Temperatura deseada del horno superior"
163
+ },
83
164
  "washer_state": {
84
165
  "name": "Estado",
85
166
  "state": {
@@ -7,5 +7,5 @@
7
7
  "iot_class": "local_polling",
8
8
  "loggers": ["holidays"],
9
9
  "quality_scale": "internal",
10
- "requirements": ["holidays==0.83"]
10
+ "requirements": ["holidays==0.84"]
11
11
  }
@@ -9,10 +9,46 @@
9
9
  }
10
10
  },
11
11
  "entity": {
12
+ "binary_sensor": {
13
+ "online": {
14
+ "state_attributes": {
15
+ "display_name": {
16
+ "name": "\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u043e \u0438\u043c\u0435"
17
+ },
18
+ "real_name": {
19
+ "name": "\u0418\u0441\u0442\u0438\u043d\u0441\u043a\u043e \u0438\u043c\u0435"
20
+ }
21
+ }
22
+ }
23
+ },
24
+ "image": {
25
+ "avatar": {
26
+ "name": "\u0410\u0432\u0430\u0442\u0430\u0440"
27
+ }
28
+ },
12
29
  "sensor": {
13
30
  "gamer_score": {
14
31
  "unit_of_measurement": "\u0442\u043e\u0447\u043a\u0438"
15
32
  },
33
+ "now_playing": {
34
+ "state_attributes": {
35
+ "achievements": {
36
+ "name": "\u041f\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f"
37
+ },
38
+ "developer": {
39
+ "name": "\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a"
40
+ },
41
+ "genres": {
42
+ "name": "\u0416\u0430\u043d\u0440\u043e\u0432\u0435"
43
+ },
44
+ "progress": {
45
+ "name": "\u041d\u0430\u043f\u0440\u0435\u0434\u044a\u043a"
46
+ },
47
+ "short_description": {
48
+ "name": "\u041a\u0440\u0430\u0442\u043a\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435"
49
+ }
50
+ }
51
+ },
16
52
  "status": {
17
53
  "name": "\u0421\u0442\u0430\u0442\u0443\u0441"
18
54
  }
@@ -13,6 +13,10 @@
13
13
  "default": "Autenticado correctamente"
14
14
  },
15
15
  "step": {
16
+ "oauth_discovery": {
17
+ "description": "Home Assistant ha encontrado un dispositivo Xbox en tu red. Pulsa **Enviar** para continuar configurando la integraci\u00f3n de Xbox.",
18
+ "title": "Dispositivo Xbox descubierto"
19
+ },
16
20
  "pick_implementation": {
17
21
  "data": {
18
22
  "implementation": "Credenciales de la aplicaci\u00f3n"
@@ -26,6 +30,9 @@
26
30
  },
27
31
  "entity": {
28
32
  "binary_sensor": {
33
+ "has_game_pass": {
34
+ "name": "Suscrito a Xbox Game Pass"
35
+ },
29
36
  "in_game": {
30
37
  "name": "En el juego"
31
38
  },
@@ -55,10 +62,21 @@
55
62
  }
56
63
  },
57
64
  "sensor": {
65
+ "follower": {
66
+ "name": "Seguidor",
67
+ "unit_of_measurement": "personas"
68
+ },
69
+ "following": {
70
+ "name": "Seguidos",
71
+ "unit_of_measurement": "personas"
72
+ },
58
73
  "gamer_score": {
59
74
  "name": "Puntuaci\u00f3n del jugador",
60
75
  "unit_of_measurement": "puntos"
61
76
  },
77
+ "last_online": {
78
+ "name": "\u00daltima conexi\u00f3n"
79
+ },
62
80
  "now_playing": {
63
81
  "name": "Actualmente jugando",
64
82
  "state_attributes": {
@@ -97,6 +115,9 @@
97
115
  }
98
116
  },
99
117
  "exceptions": {
118
+ "request_exception": {
119
+ "message": "No se pudo conectar a Xbox Network"
120
+ },
100
121
  "timeout_exception": {
101
122
  "message": "No se pudo conectar a Xbox Network debido a un tiempo de espera agotado de conexi\u00f3n"
102
123
  }
@@ -19,6 +19,7 @@
19
19
  "name": "Gejmerskor"
20
20
  },
21
21
  "now_playing": {
22
+ "name": "Trenutna reprodukuja",
22
23
  "state_attributes": {
23
24
  "achievements": {
24
25
  "name": "Dostignuc\u0301a"
@@ -16,6 +16,13 @@
16
16
  }
17
17
  }
18
18
  },
19
+ "entity": {
20
+ "binary_sensor": {
21
+ "standby": {
22
+ "name": "\u0420\u0435\u0436\u0438\u043c \u043d\u0430 \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442"
23
+ }
24
+ }
25
+ },
19
26
  "services": {
20
27
  "start_irrigation": {
21
28
  "fields": {