homeassistant 2025.11.0__py3-none-any.whl → 2025.11.0b2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- homeassistant/components/alexa_devices/manifest.json +1 -1
- homeassistant/components/alexa_devices/translations/bg.json +0 -13
- homeassistant/components/ambient_network/sensor.py +5 -5
- homeassistant/components/blink/translations/bg.json +1 -8
- homeassistant/components/brother/translations/bg.json +6 -0
- homeassistant/components/brother/translations/ca.json +5 -1
- homeassistant/components/brother/translations/cs.json +2 -2
- homeassistant/components/brother/translations/da.json +5 -1
- homeassistant/components/brother/translations/de.json +4 -4
- homeassistant/components/brother/translations/el.json +5 -1
- homeassistant/components/brother/translations/en-GB.json +4 -4
- homeassistant/components/brother/translations/en.json +4 -4
- homeassistant/components/brother/translations/es-419.json +5 -0
- homeassistant/components/brother/translations/es.json +2 -2
- homeassistant/components/brother/translations/et.json +2 -2
- homeassistant/components/brother/translations/fi.json +5 -1
- homeassistant/components/brother/translations/fr.json +5 -1
- homeassistant/components/brother/translations/ga.json +10 -2
- homeassistant/components/brother/translations/hu.json +5 -1
- homeassistant/components/brother/translations/id.json +5 -1
- homeassistant/components/brother/translations/it.json +5 -1
- homeassistant/components/brother/translations/ja.json +5 -1
- homeassistant/components/brother/translations/ko.json +5 -1
- homeassistant/components/brother/translations/lb.json +2 -1
- homeassistant/components/brother/translations/lt.json +2 -2
- homeassistant/components/brother/translations/nb.json +5 -1
- homeassistant/components/brother/translations/nl.json +5 -1
- homeassistant/components/brother/translations/pl.json +7 -3
- homeassistant/components/brother/translations/pt-BR.json +5 -1
- homeassistant/components/brother/translations/pt.json +10 -2
- homeassistant/components/brother/translations/ro.json +2 -1
- homeassistant/components/brother/translations/ru.json +5 -1
- homeassistant/components/brother/translations/sk.json +2 -2
- homeassistant/components/brother/translations/sl.json +10 -2
- homeassistant/components/brother/translations/sv.json +10 -2
- homeassistant/components/brother/translations/tr.json +5 -1
- homeassistant/components/brother/translations/uk.json +5 -1
- homeassistant/components/brother/translations/vi.json +5 -1
- homeassistant/components/brother/translations/zh-Hans.json +2 -2
- homeassistant/components/brother/translations/zh-Hant.json +4 -4
- homeassistant/components/bryant_evolution/translations/lt.json +0 -3
- homeassistant/components/control4/translations/es.json +1 -2
- homeassistant/components/cover/translations/es.json +7 -7
- homeassistant/components/daikin/translations/es.json +0 -1
- homeassistant/components/ecovacs/translations/es.json +0 -27
- homeassistant/components/ecovacs/translations/sr-Latn.json +0 -18
- homeassistant/components/enmax/__init__.py +1 -0
- homeassistant/components/enmax/manifest.json +6 -0
- homeassistant/components/esphome/__init__.py +3 -5
- homeassistant/components/esphome/translations/he.json +2 -2
- homeassistant/components/firefly_iii/translations/bg.json +0 -3
- homeassistant/components/foscam/manifest.json +1 -1
- homeassistant/components/frontend/__init__.py +1 -1
- homeassistant/components/frontend/manifest.json +1 -1
- homeassistant/components/google_sheets/translations/bg.json +0 -10
- homeassistant/components/google_sheets/translations/es.json +0 -9
- homeassistant/components/google_sheets/translations/sr-Latn.json +0 -14
- homeassistant/components/habitica/translations/es.json +0 -26
- homeassistant/components/hassio/issues.py +2 -0
- homeassistant/components/hassio/translations/es.json +0 -13
- homeassistant/components/holiday/manifest.json +1 -1
- homeassistant/components/homeassistant_connect_zbt2/config_flow.py +1 -18
- homeassistant/components/homeassistant_connect_zbt2/const.py +0 -58
- homeassistant/components/homeassistant_hardware/firmware_config_flow.py +0 -5
- homeassistant/components/homewizard/translations/es.json +2 -4
- homeassistant/components/http/__init__.py +2 -13
- homeassistant/components/http/strings.json +0 -4
- homeassistant/components/http/translations/de.json +0 -4
- homeassistant/components/http/translations/en-GB.json +0 -4
- homeassistant/components/http/translations/en.json +0 -4
- homeassistant/components/http/translations/es.json +0 -4
- homeassistant/components/http/translations/et.json +0 -4
- homeassistant/components/http/translations/lt.json +0 -4
- homeassistant/components/http/translations/sk.json +0 -4
- homeassistant/components/http/translations/zh-Hant.json +0 -4
- homeassistant/components/input_boolean/translations/cs.json +2 -2
- homeassistant/components/jewish_calendar/translations/es.json +0 -6
- homeassistant/components/knx/translations/bg.json +0 -93
- homeassistant/components/knx/translations/es.json +8 -39
- homeassistant/components/knx/translations/sr-Latn.json +1 -44
- homeassistant/components/lametric/translations/es.json +0 -1
- homeassistant/components/lg_thinq/sensor.py +0 -1
- homeassistant/components/litterrobot/manifest.json +1 -1
- homeassistant/components/london_underground/translations/he.json +0 -1
- homeassistant/components/matrix/translations/bg.json +1 -2
- homeassistant/components/matter/translations/bg.json +0 -7
- homeassistant/components/matter/translations/es.json +3 -26
- homeassistant/components/mcp/translations/es.json +0 -4
- homeassistant/components/mqtt/translations/es.json +4 -4
- homeassistant/components/mqtt/translations/he.json +2 -2
- homeassistant/components/nederlandse_spoorwegen/translations/bg.json +1 -2
- homeassistant/components/nextdns/translations/bg.json +1 -2
- homeassistant/components/nina/translations/bg.json +6 -0
- homeassistant/components/nina/translations/es.json +1 -40
- homeassistant/components/nina/translations/sr-Latn.json +0 -28
- homeassistant/components/nintendo_parental_controls/translations/bg.json +0 -19
- homeassistant/components/nuki/translations/es.json +0 -4
- homeassistant/components/octoprint/translations/es.json +0 -16
- homeassistant/components/oralb/translations/es.json +0 -1
- homeassistant/components/overkiz/translations/lt.json +1 -2
- homeassistant/components/plugwise/climate.py +26 -86
- homeassistant/components/plugwise/manifest.json +1 -1
- homeassistant/components/plugwise/strings.json +0 -3
- homeassistant/components/plugwise/translations/de.json +0 -3
- homeassistant/components/plugwise/translations/en-GB.json +0 -3
- homeassistant/components/plugwise/translations/en.json +0 -3
- homeassistant/components/plugwise/translations/es.json +0 -3
- homeassistant/components/plugwise/translations/et.json +0 -3
- homeassistant/components/plugwise/translations/lt.json +0 -3
- homeassistant/components/plugwise/translations/sk.json +0 -3
- homeassistant/components/plugwise/translations/zh-Hant.json +0 -3
- homeassistant/components/portainer/translations/bg.json +1 -8
- homeassistant/components/portainer/translations/sr-Latn.json +1 -3
- homeassistant/components/probe_plus/translations/es.json +0 -5
- homeassistant/components/ps4/translations/es.json +1 -9
- homeassistant/components/reolink/manifest.json +1 -1
- homeassistant/components/reolink/translations/cs.json +0 -1
- homeassistant/components/reolink/translations/en-GB.json +0 -1
- homeassistant/components/reolink/translations/es.json +0 -1
- homeassistant/components/reolink/translations/et.json +0 -1
- homeassistant/components/reolink/translations/lt.json +0 -1
- homeassistant/components/reolink/translations/pl.json +7 -8
- homeassistant/components/reolink/translations/sk.json +0 -1
- homeassistant/components/ruuvitag_ble/manifest.json +1 -1
- homeassistant/components/shelly/translations/bg.json +1 -2
- homeassistant/components/shelly/translations/es.json +3 -10
- homeassistant/components/slide_local/translations/es.json +1 -1
- homeassistant/components/smarttub/manifest.json +1 -1
- homeassistant/components/somfy_mylink/translations/es.json +3 -3
- homeassistant/components/soundtouch/__init__.py +1 -10
- homeassistant/components/sql/translations/es.json +0 -27
- homeassistant/components/sql/translations/sr-Latn.json +0 -9
- homeassistant/components/squeezebox/translations/es.json +0 -63
- homeassistant/components/{sunricher_dali → sunricher_dali_center}/__init__.py +2 -2
- homeassistant/components/{sunricher_dali → sunricher_dali_center}/config_flow.py +2 -2
- homeassistant/components/sunricher_dali_center/const.py +5 -0
- homeassistant/components/{sunricher_dali → sunricher_dali_center}/light.py +2 -2
- homeassistant/components/{sunricher_dali → sunricher_dali_center}/manifest.json +3 -3
- homeassistant/components/{sunricher_dali → sunricher_dali_center}/strings.json +6 -4
- homeassistant/components/sunricher_dali_center/translations/cs.json +29 -0
- homeassistant/components/{sunricher_dali → sunricher_dali_center}/translations/de.json +7 -5
- homeassistant/components/sunricher_dali_center/translations/el.json +11 -0
- homeassistant/components/{sunricher_dali → sunricher_dali_center}/translations/en-GB.json +6 -4
- homeassistant/components/{sunricher_dali → sunricher_dali_center}/translations/en.json +6 -4
- homeassistant/components/{sunricher_dali → sunricher_dali_center}/translations/es.json +6 -4
- homeassistant/components/sunricher_dali_center/translations/et.json +29 -0
- homeassistant/components/sunricher_dali_center/translations/ga.json +29 -0
- homeassistant/components/sunricher_dali_center/translations/he.json +11 -0
- homeassistant/components/sunricher_dali_center/translations/it.json +11 -0
- homeassistant/components/sunricher_dali_center/translations/lt.json +29 -0
- homeassistant/components/sunricher_dali_center/translations/nl.json +11 -0
- homeassistant/components/sunricher_dali_center/translations/pt.json +29 -0
- homeassistant/components/sunricher_dali_center/translations/sk.json +29 -0
- homeassistant/components/sunricher_dali_center/translations/sr-Latn.json +11 -0
- homeassistant/components/sunricher_dali_center/translations/zh-Hans.json +29 -0
- homeassistant/components/sunricher_dali_center/translations/zh-Hant.json +29 -0
- homeassistant/components/{sunricher_dali → sunricher_dali_center}/types.py +2 -2
- homeassistant/components/switch_as_x/translations/cs.json +1 -1
- homeassistant/components/switch_as_x/translations/es.json +4 -4
- homeassistant/components/system_bridge/translations/es.json +0 -1
- homeassistant/components/telegram_bot/translations/bg.json +0 -11
- homeassistant/components/telegram_bot/translations/es.json +7 -42
- homeassistant/components/template/translations/es.json +3 -11
- homeassistant/components/tesla_fleet/manifest.json +1 -1
- homeassistant/components/teslemetry/manifest.json +1 -1
- homeassistant/components/tessie/manifest.json +1 -1
- homeassistant/components/tessie/translations/es.json +0 -3
- homeassistant/components/transmission/translations/bg.json +0 -10
- homeassistant/components/usb/utils.py +23 -22
- homeassistant/components/vesync/humidifier.py +1 -3
- homeassistant/components/vesync/strings.json +0 -11
- homeassistant/components/vesync/translations/bg.json +0 -11
- homeassistant/components/vesync/translations/cs.json +0 -11
- homeassistant/components/vesync/translations/de.json +0 -11
- homeassistant/components/vesync/translations/en-GB.json +0 -11
- homeassistant/components/vesync/translations/en.json +0 -11
- homeassistant/components/vesync/translations/es.json +0 -11
- homeassistant/components/vesync/translations/et.json +0 -11
- homeassistant/components/vesync/translations/he.json +0 -11
- homeassistant/components/vesync/translations/lt.json +0 -11
- homeassistant/components/vesync/translations/sk.json +0 -11
- homeassistant/components/vesync/translations/zh-Hans.json +0 -11
- homeassistant/components/vesync/translations/zh-Hant.json +0 -11
- homeassistant/components/volvo/translations/bg.json +0 -5
- homeassistant/components/volvo/translations/cs.json +0 -5
- homeassistant/components/volvo/translations/en-GB.json +0 -5
- homeassistant/components/volvo/translations/es.json +0 -11
- homeassistant/components/volvo/translations/lt.json +0 -5
- homeassistant/components/volvo/translations/sk.json +0 -5
- homeassistant/components/whirlpool/translations/bg.json +0 -22
- homeassistant/components/whirlpool/translations/es.json +0 -81
- homeassistant/components/workday/manifest.json +1 -1
- homeassistant/components/xbox/translations/bg.json +0 -36
- homeassistant/components/xbox/translations/es.json +0 -21
- homeassistant/components/xbox/translations/sr-Latn.json +0 -1
- homeassistant/components/yardian/translations/bg.json +0 -7
- homeassistant/components/yardian/translations/es.json +0 -16
- homeassistant/components/zha/__init__.py +1 -16
- homeassistant/components/zha/config_flow.py +48 -163
- homeassistant/components/zha/manifest.json +1 -1
- homeassistant/components/zha/radio_manager.py +2 -3
- homeassistant/components/zha/strings.json +15 -68
- homeassistant/components/zha/translations/bg.json +3 -20
- homeassistant/components/zha/translations/ca.json +3 -0
- homeassistant/components/zha/translations/cs.json +16 -30
- homeassistant/components/zha/translations/da.json +3 -0
- homeassistant/components/zha/translations/de.json +15 -68
- homeassistant/components/zha/translations/el.json +3 -0
- homeassistant/components/zha/translations/en-GB.json +15 -68
- homeassistant/components/zha/translations/en.json +15 -68
- homeassistant/components/zha/translations/es.json +18 -119
- homeassistant/components/zha/translations/et.json +15 -68
- homeassistant/components/zha/translations/fi.json +3 -0
- homeassistant/components/zha/translations/fr.json +18 -0
- homeassistant/components/zha/translations/ga.json +3 -0
- homeassistant/components/zha/translations/gsw.json +3 -0
- homeassistant/components/zha/translations/hu.json +3 -0
- homeassistant/components/zha/translations/id.json +3 -0
- homeassistant/components/zha/translations/it.json +3 -0
- homeassistant/components/zha/translations/ja.json +3 -0
- homeassistant/components/zha/translations/ko.json +9 -0
- homeassistant/components/zha/translations/lt.json +15 -68
- homeassistant/components/zha/translations/nb.json +3 -0
- homeassistant/components/zha/translations/nl.json +3 -0
- homeassistant/components/zha/translations/pl.json +3 -0
- homeassistant/components/zha/translations/pt-BR.json +3 -0
- homeassistant/components/zha/translations/pt.json +18 -0
- homeassistant/components/zha/translations/ro.json +3 -0
- homeassistant/components/zha/translations/ru.json +18 -0
- homeassistant/components/zha/translations/sk.json +15 -68
- homeassistant/components/zha/translations/sl.json +9 -0
- homeassistant/components/zha/translations/sr-Latn.json +14 -0
- homeassistant/components/zha/translations/sv.json +4 -0
- homeassistant/components/zha/translations/tr.json +3 -0
- homeassistant/components/zha/translations/uk.json +3 -0
- homeassistant/components/zha/translations/zh-Hans.json +16 -30
- homeassistant/components/zha/translations/zh-Hant.json +15 -68
- homeassistant/components/zwave_js/translations/es.json +0 -3
- homeassistant/const.py +1 -1
- homeassistant/generated/config_flows.py +1 -1
- homeassistant/generated/integrations.json +7 -2
- homeassistant/package_constraints.txt +1 -1
- homeassistant/util/language.py +7 -17
- {homeassistant-2025.11.0.dist-info → homeassistant-2025.11.0b2.dist-info}/METADATA +1 -1
- {homeassistant-2025.11.0.dist-info → homeassistant-2025.11.0b2.dist-info}/RECORD +251 -240
- homeassistant/components/fing/translations/bg.json +0 -20
- homeassistant/components/fing/translations/es.json +0 -31
- homeassistant/components/inels/translations/bg.json +0 -1
- homeassistant/components/inels/translations/es.json +0 -30
- homeassistant/components/sunricher_dali/const.py +0 -5
- /homeassistant/components/{sunricher_dali → sunricher_dali_center}/quality_scale.yaml +0 -0
- {homeassistant-2025.11.0.dist-info → homeassistant-2025.11.0b2.dist-info}/WHEEL +0 -0
- {homeassistant-2025.11.0.dist-info → homeassistant-2025.11.0b2.dist-info}/entry_points.txt +0 -0
- {homeassistant-2025.11.0.dist-info → homeassistant-2025.11.0b2.dist-info}/licenses/LICENSE.md +0 -0
- {homeassistant-2025.11.0.dist-info → homeassistant-2025.11.0b2.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
- {homeassistant-2025.11.0.dist-info → homeassistant-2025.11.0b2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"config": {
|
|
3
|
+
"abort": {
|
|
4
|
+
"already_configured": "\u88dd\u7f6e\u5df2\u7d93\u8a2d\u5b9a\u5b8c\u6210"
|
|
5
|
+
},
|
|
6
|
+
"error": {
|
|
7
|
+
"cannot_connect": "\u9023\u7dda\u5931\u6557",
|
|
8
|
+
"discovery_failed": "\u7121\u6cd5\u5728\u7db2\u8def\u4e0a\u627e\u5230 DALI \u9598\u9053\u5668",
|
|
9
|
+
"no_devices_found": "\u5728\u7db2\u8def\u4e0a\u627e\u4e0d\u5230 DALI \u9598\u9053\u5668",
|
|
10
|
+
"unknown": "\u672a\u9810\u671f\u932f\u8aa4"
|
|
11
|
+
},
|
|
12
|
+
"step": {
|
|
13
|
+
"select_gateway": {
|
|
14
|
+
"data": {
|
|
15
|
+
"selected_gateway": "\u9598\u9053\u5668"
|
|
16
|
+
},
|
|
17
|
+
"data_description": {
|
|
18
|
+
"selected_gateway": "\u6bcf\u500b\u9078\u9805\u90fd\u6703\u986f\u793a\u9598\u9053\u5668\u540d\u7a31\u3001\u5e8f\u865f\u548c IP \u4f4d\u5740\u3002"
|
|
19
|
+
},
|
|
20
|
+
"description": "\u9078\u64c7\u6240\u8981\u8a2d\u5b9a\u7684\u9598\u9053\u5668\u3002",
|
|
21
|
+
"title": "\u9078\u64c7 DALI \u9598\u9053\u5668"
|
|
22
|
+
},
|
|
23
|
+
"user": {
|
|
24
|
+
"description": "**\u4e09\u6b65\u9a5f\u6d41\u7a0b\uff1a**\n\n1. \u8acb\u78ba\u8a8d\u9598\u9053\u5668\u5df2\u901a\u96fb\u3001\u4e26\u4e14\u5728\u540c\u4e00\u7db2\u8def\u4e0a\u3002\n2. \u9078\u64c7**\u50b3\u9001**\u958b\u59cb\u641c\u7d22\uff08\u6700\u591a 3 \u5206\u9418\uff09\n3. \u5728\u641c\u7d22\u9032\u884c\u4e2d\u6642\uff0c\u6309\u4e00\u4e0b DALI \u9598\u9053\u5668\u88dd\u7f6e\u4e0a\u7684**\u91cd\u7f6e**\u6309\u9215**\u4e00\u6b21**\u3002\n\n\u9598\u9053\u5668\u6703\u5728\u6309\u4e0b\u6309\u9215\u5f8c\u7acb\u5373\u56de\u61c9\u3002",
|
|
25
|
+
"title": "\u8a2d\u5b9a DALI Center \u9598\u9053\u5668"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Type definitions for the
|
|
1
|
+
"""Type definitions for the DALI Center integration."""
|
|
2
2
|
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
|
|
@@ -9,7 +9,7 @@ from homeassistant.config_entries import ConfigEntry
|
|
|
9
9
|
|
|
10
10
|
@dataclass
|
|
11
11
|
class DaliCenterData:
|
|
12
|
-
"""Runtime data for the
|
|
12
|
+
"""Runtime data for the DALI Center integration."""
|
|
13
13
|
|
|
14
14
|
gateway: DaliGateway
|
|
15
15
|
devices: list[Device]
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"target_domain": "Nuevo tipo"
|
|
9
9
|
},
|
|
10
10
|
"data_description": {
|
|
11
|
-
"invert": "Estado invertido, solo compatible con
|
|
11
|
+
"invert": "Estado invertido, solo compatible con cubierta, cerradura y v\u00e1lvula."
|
|
12
12
|
},
|
|
13
|
-
"description": "Elige un interruptor que desees que aparezca en Home Assistant como luz,
|
|
13
|
+
"description": "Elige un interruptor que desees que aparezca en Home Assistant como luz, cubierta o cualquier otra cosa. El interruptor original se ocultar\u00e1."
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
},
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"invert": "Invertir estado"
|
|
22
22
|
},
|
|
23
23
|
"data_description": {
|
|
24
|
-
"invert": "Estado invertido, solo compatible con
|
|
24
|
+
"invert": "Estado invertido, solo compatible con cubierta, cerradura y v\u00e1lvula."
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"selector": {
|
|
30
30
|
"target_domain": {
|
|
31
31
|
"options": {
|
|
32
|
-
"cover": "
|
|
32
|
+
"cover": "Cubierta",
|
|
33
33
|
"fan": "Ventilador",
|
|
34
34
|
"light": "Luz",
|
|
35
35
|
"lock": "Cerradura",
|
|
@@ -56,17 +56,6 @@
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
},
|
|
59
|
-
"entity": {
|
|
60
|
-
"event": {
|
|
61
|
-
"update_event": {
|
|
62
|
-
"state_attributes": {
|
|
63
|
-
"id": {
|
|
64
|
-
"name": "ID"
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
59
|
"exceptions": {
|
|
71
60
|
"failed_to_load_file": {
|
|
72
61
|
"message": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0444\u0430\u0439\u043b\u0430: {error}"
|
|
@@ -447,12 +447,7 @@
|
|
|
447
447
|
"name": "Verificar SSL"
|
|
448
448
|
}
|
|
449
449
|
},
|
|
450
|
-
"name": "Editar medios del mensaje"
|
|
451
|
-
"sections": {
|
|
452
|
-
"url_options": {
|
|
453
|
-
"name": "Opciones de URL"
|
|
454
|
-
}
|
|
455
|
-
}
|
|
450
|
+
"name": "Editar medios del mensaje"
|
|
456
451
|
},
|
|
457
452
|
"edit_replymarkup": {
|
|
458
453
|
"description": "Edita el teclado en l\u00ednea de un mensaje enviado previamente.",
|
|
@@ -562,12 +557,7 @@
|
|
|
562
557
|
"name": "Verificar SSL"
|
|
563
558
|
}
|
|
564
559
|
},
|
|
565
|
-
"name": "Enviar animaci\u00f3n"
|
|
566
|
-
"sections": {
|
|
567
|
-
"url_options": {
|
|
568
|
-
"name": "Opciones de URL"
|
|
569
|
-
}
|
|
570
|
-
}
|
|
560
|
+
"name": "Enviar animaci\u00f3n"
|
|
571
561
|
},
|
|
572
562
|
"send_chat_action": {
|
|
573
563
|
"description": "Env\u00eda una acci\u00f3n de chat.",
|
|
@@ -663,12 +653,7 @@
|
|
|
663
653
|
"name": "Verificar SSL"
|
|
664
654
|
}
|
|
665
655
|
},
|
|
666
|
-
"name": "Enviar documento"
|
|
667
|
-
"sections": {
|
|
668
|
-
"url_options": {
|
|
669
|
-
"name": "Opciones de URL"
|
|
670
|
-
}
|
|
671
|
-
}
|
|
656
|
+
"name": "Enviar documento"
|
|
672
657
|
},
|
|
673
658
|
"send_location": {
|
|
674
659
|
"description": "Env\u00eda una ubicaci\u00f3n.",
|
|
@@ -850,12 +835,7 @@
|
|
|
850
835
|
"name": "Verificar SSL"
|
|
851
836
|
}
|
|
852
837
|
},
|
|
853
|
-
"name": "Enviar foto"
|
|
854
|
-
"sections": {
|
|
855
|
-
"url_options": {
|
|
856
|
-
"name": "Opciones de URL"
|
|
857
|
-
}
|
|
858
|
-
}
|
|
838
|
+
"name": "Enviar foto"
|
|
859
839
|
},
|
|
860
840
|
"send_poll": {
|
|
861
841
|
"description": "Env\u00eda una encuesta.",
|
|
@@ -975,12 +955,7 @@
|
|
|
975
955
|
"name": "Verificar SSL"
|
|
976
956
|
}
|
|
977
957
|
},
|
|
978
|
-
"name": "Enviar sticker"
|
|
979
|
-
"sections": {
|
|
980
|
-
"url_options": {
|
|
981
|
-
"name": "Opciones de URL"
|
|
982
|
-
}
|
|
983
|
-
}
|
|
958
|
+
"name": "Enviar sticker"
|
|
984
959
|
},
|
|
985
960
|
"send_video": {
|
|
986
961
|
"description": "Env\u00eda un v\u00eddeo.",
|
|
@@ -1054,12 +1029,7 @@
|
|
|
1054
1029
|
"name": "Verificar SSL"
|
|
1055
1030
|
}
|
|
1056
1031
|
},
|
|
1057
|
-
"name": "Enviar v\u00eddeo"
|
|
1058
|
-
"sections": {
|
|
1059
|
-
"url_options": {
|
|
1060
|
-
"name": "Opciones de URL"
|
|
1061
|
-
}
|
|
1062
|
-
}
|
|
1032
|
+
"name": "Enviar v\u00eddeo"
|
|
1063
1033
|
},
|
|
1064
1034
|
"send_voice": {
|
|
1065
1035
|
"description": "Env\u00eda un mensaje de voz.",
|
|
@@ -1129,12 +1099,7 @@
|
|
|
1129
1099
|
"name": "Verificar SSL"
|
|
1130
1100
|
}
|
|
1131
1101
|
},
|
|
1132
|
-
"name": "Enviar voz"
|
|
1133
|
-
"sections": {
|
|
1134
|
-
"url_options": {
|
|
1135
|
-
"name": "Opciones de URL"
|
|
1136
|
-
}
|
|
1137
|
-
}
|
|
1102
|
+
"name": "Enviar voz"
|
|
1138
1103
|
},
|
|
1139
1104
|
"set_message_reaction": {
|
|
1140
1105
|
"description": "Establece la reacci\u00f3n del bot ante un mensaje determinado.",
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
"device_id": "Selecciona un dispositivo para vincularlo a esta entidad.",
|
|
120
120
|
"open_cover": "Define acciones a ejecutar cuando se abre la persiana.",
|
|
121
121
|
"position": "Define una plantilla para obtener la posici\u00f3n de la persiana. Los valores son n\u00fameros entre 0 (cerrado) y 100 (abierto).",
|
|
122
|
-
"set_cover_position": "Define las acciones que se ejecutan cuando se asigna a la
|
|
122
|
+
"set_cover_position": "Define las acciones que se ejecutan cuando se asigna a la cubierta el comando `set_cover_position`. Recibe la variable `position`.",
|
|
123
123
|
"state": "Define una plantilla para obtener el estado de la persiana. Los valores de salida v\u00e1lidos de la plantilla son `open`, `opening`, `closing` y `closed`, que se asignan directamente a los estados correspondientes. Si se especifican tanto un estado como una posici\u00f3n, solo `opening` y `closing` se configuran desde la plantilla de estados.",
|
|
124
124
|
"stop_cover": "Define las acciones a ejecutar cuando se detiene la persiana."
|
|
125
125
|
},
|
|
@@ -452,7 +452,7 @@
|
|
|
452
452
|
"alarm_control_panel": "Panel de control de alarma",
|
|
453
453
|
"binary_sensor": "Sensor binario",
|
|
454
454
|
"button": "Bot\u00f3n",
|
|
455
|
-
"cover": "
|
|
455
|
+
"cover": "Cubierta",
|
|
456
456
|
"event": "Evento",
|
|
457
457
|
"fan": "Ventilador",
|
|
458
458
|
"image": "Imagen",
|
|
@@ -516,14 +516,6 @@
|
|
|
516
516
|
}
|
|
517
517
|
},
|
|
518
518
|
"issues": {
|
|
519
|
-
"config_format_actions": {
|
|
520
|
-
"description": "Hay una opci\u00f3n de acciones en la configuraci\u00f3n de la plantilla que no se empareja con una opci\u00f3n de activaci\u00f3n. Esto ser\u00e1 un error de validaci\u00f3n de configuraci\u00f3n en 2026.5.\n\nPor favor, a\u00f1ade un disparador a la configuraci\u00f3n o elimina la opci\u00f3n de acciones de la configuraci\u00f3n.\n\n```\n{config}\n```",
|
|
521
|
-
"title": "La opci\u00f3n de acciones de plantilla requiere un activador."
|
|
522
|
-
},
|
|
523
|
-
"config_format_triggers": {
|
|
524
|
-
"description": "Una configuraci\u00f3n de plantilla de disparador requiere un disparador y al menos un dominio al definir una entidad. Esto generar\u00e1 un error de validaci\u00f3n de configuraci\u00f3n en Home Assistant Core 2026.5. \n \nPor favor, elimina el disparador hu\u00e9rfano de la configuraci\u00f3n. \n \n ``` \n {config} \n ```",
|
|
525
|
-
"title": "Configuraci\u00f3n de plantilla incompleta"
|
|
526
|
-
},
|
|
527
519
|
"deprecated_battery_level": {
|
|
528
520
|
"description": "Las opciones de la plantilla de aspiradora `battery_level` y `battery_level_template` se eliminar\u00e1n en 2026.8. \n \nPor favor, elimina la opci\u00f3n `battery_level` o `battery_level_template` de la configuraci\u00f3n YAML para {entity_id} ({entity_name}).",
|
|
529
521
|
"title": "Opci\u00f3n de nivel de bater\u00eda obsoleta en {entity_name}"
|
|
@@ -630,7 +622,7 @@
|
|
|
630
622
|
"device_id": "Selecciona un dispositivo para vincularlo a esta entidad.",
|
|
631
623
|
"open_cover": "Define acciones a ejecutar cuando se abre la persiana.",
|
|
632
624
|
"position": "Define una plantilla para obtener la posici\u00f3n de la persiana. Los valores son n\u00fameros entre 0 (cerrado) y 100 (abierto).",
|
|
633
|
-
"set_cover_position": "Define las acciones que se ejecutan cuando se asigna a la
|
|
625
|
+
"set_cover_position": "Define las acciones que se ejecutan cuando se asigna a la cubierta el comando `set_cover_position`. Recibe la variable `position`.",
|
|
634
626
|
"state": "Define una plantilla para obtener el estado de la persiana. Los valores de salida v\u00e1lidos de la plantilla son `open`, `opening`, `closing` y `closed`, que se asignan directamente a los estados correspondientes. Si se especifican tanto un estado como una posici\u00f3n, solo `opening` y `closing` se configuran desde la plantilla de estados.",
|
|
635
627
|
"stop_cover": "Define las acciones a ejecutar cuando se detiene la persiana."
|
|
636
628
|
},
|
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
"documentation": "https://www.home-assistant.io/integrations/teslemetry",
|
|
7
7
|
"iot_class": "cloud_polling",
|
|
8
8
|
"loggers": ["tesla-fleet-api"],
|
|
9
|
-
"requirements": ["tesla-fleet-api==1.2.
|
|
9
|
+
"requirements": ["tesla-fleet-api==1.2.3", "teslemetry-stream==0.7.10"]
|
|
10
10
|
}
|
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
"documentation": "https://www.home-assistant.io/integrations/tessie",
|
|
7
7
|
"iot_class": "cloud_polling",
|
|
8
8
|
"loggers": ["tessie", "tesla-fleet-api"],
|
|
9
|
-
"requirements": ["tessie-api==0.1.1", "tesla-fleet-api==1.2.
|
|
9
|
+
"requirements": ["tessie-api==0.1.1", "tesla-fleet-api==1.2.3"]
|
|
10
10
|
}
|
|
@@ -517,9 +517,6 @@
|
|
|
517
517
|
"command_failed": {
|
|
518
518
|
"message": "El comando fall\u00f3, {message}"
|
|
519
519
|
},
|
|
520
|
-
"cpd_enabled": {
|
|
521
|
-
"message": "La detecci\u00f3n de presencia infantil ha bloqueado el comando para retirar peso de los asientos."
|
|
522
|
-
},
|
|
523
520
|
"incorrect_pin": {
|
|
524
521
|
"message": "PIN incorrecto para {name}."
|
|
525
522
|
},
|
|
@@ -68,16 +68,6 @@
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
|
-
"selector": {
|
|
72
|
-
"order": {
|
|
73
|
-
"options": {
|
|
74
|
-
"best_ratio_first": "\u041d\u0430\u0439-\u0434\u043e\u0431\u0440\u043e \u0441\u044a\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043f\u044a\u0440\u0432\u043e",
|
|
75
|
-
"newest_first": "\u041d\u0430\u0439-\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u044a\u0440\u0432\u043e",
|
|
76
|
-
"oldest_first": "\u041d\u0430\u0439-\u0441\u0442\u0430\u0440\u0438\u0442\u0435 \u043f\u044a\u0440\u0432\u043e",
|
|
77
|
-
"worst_ratio_first": "\u041d\u0430\u0439-\u043b\u043e\u0448\u043e\u0442\u043e \u0441\u044a\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043f\u044a\u0440\u0432\u043e"
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
71
|
"services": {
|
|
82
72
|
"add_torrent": {
|
|
83
73
|
"fields": {
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
from collections.abc import Sequence
|
|
6
|
-
import dataclasses
|
|
7
6
|
import fnmatch
|
|
8
7
|
import os
|
|
9
8
|
|
|
@@ -30,6 +29,15 @@ def usb_device_from_port(port: ListPortInfo) -> USBDevice:
|
|
|
30
29
|
|
|
31
30
|
def scan_serial_ports() -> Sequence[USBDevice]:
|
|
32
31
|
"""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."""
|
|
33
41
|
|
|
34
42
|
# Scan all symlinks first
|
|
35
43
|
by_id = "/dev/serial/by-id"
|
|
@@ -38,30 +46,23 @@ def scan_serial_ports() -> Sequence[USBDevice]:
|
|
|
38
46
|
for path in (entry.path for entry in os.scandir(by_id) if entry.is_symlink()):
|
|
39
47
|
realpath_to_by_id[os.path.realpath(path)] = path
|
|
40
48
|
|
|
41
|
-
|
|
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
|
-
|
|
49
|
+
# Then compare the actual path to each serial port's
|
|
60
50
|
device_path_real = os.path.realpath(device_path)
|
|
61
51
|
|
|
62
52
|
for device in scan_serial_ports():
|
|
63
|
-
|
|
64
|
-
|
|
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
|
+
)
|
|
65
66
|
|
|
66
67
|
return None
|
|
67
68
|
|
|
@@ -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:
|
|
40
|
+
VS_HUMIDIFIER_MODE_HUMIDITY: MODE_AUTO,
|
|
41
41
|
VS_HUMIDIFIER_MODE_MANUAL: MODE_NORMAL,
|
|
42
42
|
VS_HUMIDIFIER_MODE_SLEEP: MODE_SLEEP,
|
|
43
43
|
}
|
|
@@ -93,8 +93,6 @@ class VeSyncHumidifierHA(VeSyncBaseEntity, HumidifierEntity):
|
|
|
93
93
|
|
|
94
94
|
_attr_supported_features = HumidifierEntityFeature.MODES
|
|
95
95
|
|
|
96
|
-
_attr_translation_key = "vesync"
|
|
97
|
-
|
|
98
96
|
def __init__(
|
|
99
97
|
self,
|
|
100
98
|
device: VeSyncBaseDevice,
|
|
@@ -24,17 +24,6 @@
|
|
|
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
|
-
},
|
|
38
27
|
"number": {
|
|
39
28
|
"mist_level": {
|
|
40
29
|
"name": "\u041d\u0438\u0432\u043e \u043d\u0430 \u043c\u044a\u0433\u043b\u0430\u0442\u0430"
|
|
@@ -44,11 +44,6 @@
|
|
|
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
|
-
},
|
|
52
47
|
"sensor": {
|
|
53
48
|
"availability": {
|
|
54
49
|
"state": {
|