homeassistant 2025.9.0b4__py3-none-any.whl → 2025.9.0b6__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/ai_task/translations/es.json +23 -1
- homeassistant/components/airgradient/translations/es.json +2 -1
- homeassistant/components/airos/translations/es.json +32 -1
- homeassistant/components/airq/translations/es.json +5 -0
- homeassistant/components/aladdin_connect/translations/es.json +30 -1
- homeassistant/components/alarm_control_panel/translations/es.json +1 -1
- homeassistant/components/alexa_devices/translations/es.json +52 -1
- homeassistant/components/apcupsd/translations/es.json +3 -3
- homeassistant/components/bayesian/translations/es.json +257 -0
- homeassistant/components/bmw_connected_drive/translations/cs.json +1 -1
- homeassistant/components/cloud/manifest.json +1 -1
- homeassistant/components/conversation/manifest.json +1 -1
- homeassistant/components/deconz/entity.py +1 -1
- homeassistant/components/deconz/hub/hub.py +1 -12
- homeassistant/components/deconz/light.py +1 -1
- homeassistant/components/deconz/services.py +2 -11
- homeassistant/components/dsmr_reader/translations/es.json +3 -3
- homeassistant/components/ecowitt/manifest.json +1 -1
- homeassistant/components/elgato/translations/es.json +1 -1
- homeassistant/components/enphase_envoy/translations/es.json +8 -2
- homeassistant/components/foscam/translations/es.json +34 -0
- homeassistant/components/fritzbox/translations/es.json +3 -1
- homeassistant/components/fritzbox_callmonitor/translations/es.json +2 -1
- homeassistant/components/fronius/translations/es.json +9 -9
- homeassistant/components/frontend/manifest.json +1 -1
- homeassistant/components/fyta/translations/es.json +64 -2
- homeassistant/components/growatt_server/strings.json +2 -2
- homeassistant/components/growatt_server/translations/ca.json +0 -6
- homeassistant/components/growatt_server/translations/cs.json +2 -2
- homeassistant/components/growatt_server/translations/de.json +2 -2
- homeassistant/components/growatt_server/translations/el.json +0 -6
- homeassistant/components/growatt_server/translations/en-GB.json +2 -2
- homeassistant/components/growatt_server/translations/en.json +2 -2
- homeassistant/components/growatt_server/translations/es.json +11 -11
- homeassistant/components/growatt_server/translations/et.json +0 -3
- homeassistant/components/growatt_server/translations/fi.json +0 -6
- homeassistant/components/growatt_server/translations/fr.json +0 -3
- homeassistant/components/growatt_server/translations/ga.json +0 -3
- homeassistant/components/growatt_server/translations/gl.json +0 -3
- homeassistant/components/growatt_server/translations/hu.json +0 -6
- homeassistant/components/growatt_server/translations/id.json +0 -6
- homeassistant/components/growatt_server/translations/it.json +0 -6
- homeassistant/components/growatt_server/translations/ja.json +0 -6
- homeassistant/components/growatt_server/translations/ko.json +0 -6
- homeassistant/components/growatt_server/translations/lt.json +0 -6
- homeassistant/components/growatt_server/translations/nl.json +0 -6
- homeassistant/components/growatt_server/translations/pt-BR.json +0 -6
- homeassistant/components/growatt_server/translations/pt.json +0 -6
- homeassistant/components/growatt_server/translations/ro.json +0 -6
- homeassistant/components/growatt_server/translations/ru.json +0 -6
- homeassistant/components/growatt_server/translations/sk.json +0 -6
- homeassistant/components/growatt_server/translations/sv.json +0 -6
- homeassistant/components/growatt_server/translations/tr.json +0 -6
- homeassistant/components/growatt_server/translations/zh-Hans.json +0 -6
- homeassistant/components/growatt_server/translations/zh-Hant.json +0 -6
- homeassistant/components/habitica/translations/es.json +17 -0
- homeassistant/components/hassio/translations/es.json +4 -0
- homeassistant/components/homekit/translations/es.json +7 -0
- homeassistant/components/hue/translations/es.json +1 -0
- homeassistant/components/husqvarna_automower/translations/es.json +79 -1
- homeassistant/components/husqvarna_automower_ble/translations/es.json +35 -1
- homeassistant/components/hydrawise/translations/es.json +5 -1
- homeassistant/components/imeon_inverter/translations/es.json +80 -0
- homeassistant/components/knx/translations/es.json +104 -1
- homeassistant/components/lock/translations/cs.json +2 -2
- homeassistant/components/matter/translations/cs.json +1 -1
- homeassistant/components/matter/translations/es.json +33 -0
- homeassistant/components/media_player/translations/es.json +6 -1
- homeassistant/components/miele/translations/es.json +13 -0
- homeassistant/components/modbus/binary_sensor.py +4 -1
- homeassistant/components/modbus/climate.py +4 -4
- homeassistant/components/modbus/cover.py +2 -2
- homeassistant/components/modbus/entity.py +24 -55
- homeassistant/components/modbus/modbus.py +8 -9
- homeassistant/components/modbus/sensor.py +6 -2
- homeassistant/components/mqtt/translations/cs.json +1 -1
- homeassistant/components/mqtt/translations/es.json +55 -3
- homeassistant/components/nextdns/translations/es.json +3 -0
- homeassistant/components/number/translations/es.json +1 -1
- homeassistant/components/nut/translations/es.json +3 -3
- homeassistant/components/onewire/translations/es.json +3 -0
- homeassistant/components/osoenergy/translations/es.json +1 -1
- homeassistant/components/playstation_network/translations/es.json +18 -0
- homeassistant/components/plugwise/translations/cs.json +1 -1
- homeassistant/components/pooldose/translations/es.json +102 -0
- homeassistant/components/qbus/translations/es.json +8 -0
- homeassistant/components/random/translations/es.json +2 -2
- homeassistant/components/refoss/translations/es.json +1 -1
- homeassistant/components/reolink/translations/es.json +9 -0
- homeassistant/components/ruuvitag_ble/translations/es.json +25 -0
- homeassistant/components/scrape/translations/es.json +2 -2
- homeassistant/components/sensibo/translations/es.json +25 -0
- homeassistant/components/sensor/translations/es.json +6 -3
- homeassistant/components/sleep_as_android/translations/es.json +124 -0
- homeassistant/components/snapcast/translations/es.json +10 -0
- homeassistant/components/solarlog/translations/es.json +2 -2
- homeassistant/components/somfy_mylink/translations/es.json +4 -2
- homeassistant/components/sonos/translations/es.json +15 -0
- homeassistant/components/sql/translations/es.json +2 -2
- homeassistant/components/switch_as_x/translations/cs.json +1 -1
- homeassistant/components/switchbot_cloud/translations/es.json +16 -0
- homeassistant/components/system_bridge/translations/es.json +1 -1
- homeassistant/components/template/translations/ca.json +0 -10
- homeassistant/components/template/translations/cs.json +16 -16
- homeassistant/components/template/translations/da.json +0 -5
- homeassistant/components/template/translations/de.json +16 -16
- homeassistant/components/template/translations/el.json +0 -11
- homeassistant/components/template/translations/en-GB.json +16 -16
- homeassistant/components/template/translations/en.json +16 -16
- homeassistant/components/template/translations/es.json +22 -19
- homeassistant/components/template/translations/et.json +16 -16
- homeassistant/components/template/translations/fi.json +0 -7
- homeassistant/components/template/translations/fr.json +0 -18
- homeassistant/components/template/translations/ga.json +0 -16
- homeassistant/components/template/translations/gl.json +0 -4
- homeassistant/components/template/translations/he.json +0 -18
- homeassistant/components/template/translations/hu.json +0 -11
- homeassistant/components/template/translations/id.json +0 -11
- homeassistant/components/template/translations/it.json +0 -9
- homeassistant/components/template/translations/ja.json +0 -11
- homeassistant/components/template/translations/ko.json +0 -8
- homeassistant/components/template/translations/lb.json +0 -5
- homeassistant/components/template/translations/lt.json +0 -18
- homeassistant/components/template/translations/lv.json +0 -5
- homeassistant/components/template/translations/nb.json +0 -4
- homeassistant/components/template/translations/nl.json +0 -13
- homeassistant/components/template/translations/pl.json +0 -11
- homeassistant/components/template/translations/pt.json +0 -18
- homeassistant/components/template/translations/ro.json +0 -4
- homeassistant/components/template/translations/ru.json +0 -17
- homeassistant/components/template/translations/sk.json +0 -18
- homeassistant/components/template/translations/sl.json +0 -11
- homeassistant/components/template/translations/sv.json +0 -18
- homeassistant/components/template/translations/tr.json +0 -11
- homeassistant/components/template/translations/uk.json +0 -11
- homeassistant/components/template/translations/vi.json +0 -11
- homeassistant/components/template/translations/zh-Hans.json +0 -18
- homeassistant/components/template/translations/zh-Hant.json +0 -18
- homeassistant/components/tesla_fleet/translations/cs.json +1 -1
- homeassistant/components/teslemetry/translations/cs.json +1 -1
- homeassistant/components/teslemetry/translations/de.json +1 -1
- homeassistant/components/teslemetry/translations/es.json +97 -5
- homeassistant/components/tessie/translations/cs.json +1 -1
- homeassistant/components/togrill/translations/es.json +28 -0
- homeassistant/components/tuya/translations/es.json +24 -1
- homeassistant/components/velux/translations/es.json +7 -0
- homeassistant/components/volvo/translations/es.json +141 -1
- homeassistant/components/wallbox/translations/cs.json +1 -1
- homeassistant/components/yalexs_ble/translations/es.json +16 -1
- homeassistant/components/yolink/translations/es.json +16 -0
- homeassistant/components/zha/translations/es.json +66 -0
- homeassistant/components/zwave_js/translations/es.json +20 -2
- homeassistant/const.py +1 -1
- homeassistant/helpers/area_registry.py +2 -4
- homeassistant/helpers/device_registry.py +1 -1
- homeassistant/helpers/floor_registry.py +2 -4
- homeassistant/package_constraints.txt +3 -3
- {homeassistant-2025.9.0b4.dist-info → homeassistant-2025.9.0b6.dist-info}/METADATA +2 -2
- {homeassistant-2025.9.0b4.dist-info → homeassistant-2025.9.0b6.dist-info}/RECORD +164 -162
- {homeassistant-2025.9.0b4.dist-info → homeassistant-2025.9.0b6.dist-info}/WHEEL +0 -0
- {homeassistant-2025.9.0b4.dist-info → homeassistant-2025.9.0b6.dist-info}/entry_points.txt +0 -0
- {homeassistant-2025.9.0b4.dist-info → homeassistant-2025.9.0b6.dist-info}/licenses/LICENSE.md +0 -0
- {homeassistant-2025.9.0b4.dist-info → homeassistant-2025.9.0b6.dist-info}/licenses/homeassistant/backports/LICENSE.Python +0 -0
- {homeassistant-2025.9.0b4.dist-info → homeassistant-2025.9.0b6.dist-info}/top_level.txt +0 -0
|
@@ -29,15 +29,44 @@
|
|
|
29
29
|
},
|
|
30
30
|
"entity": {
|
|
31
31
|
"sensor": {
|
|
32
|
+
"battery_consumed": {
|
|
33
|
+
"name": "Bater\u00eda consumida"
|
|
34
|
+
},
|
|
32
35
|
"battery_power": {
|
|
33
36
|
"name": "Energ\u00eda de la bater\u00eda"
|
|
34
37
|
},
|
|
35
38
|
"battery_soc": {
|
|
36
39
|
"name": "Estado de carga de la bater\u00eda"
|
|
37
40
|
},
|
|
41
|
+
"battery_status": {
|
|
42
|
+
"name": "Estado de la bater\u00eda",
|
|
43
|
+
"state": {
|
|
44
|
+
"charged": "Cargado",
|
|
45
|
+
"charging": "Cargando",
|
|
46
|
+
"discharging": "Descargando"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
38
49
|
"battery_stored": {
|
|
39
50
|
"name": "Bater\u00eda almacenada"
|
|
40
51
|
},
|
|
52
|
+
"energy_battery_consumed": {
|
|
53
|
+
"name": "Energ\u00eda consumida desde las bater\u00edas hoy"
|
|
54
|
+
},
|
|
55
|
+
"energy_battery_stored": {
|
|
56
|
+
"name": "Energ\u00eda almacenada en bater\u00edas hoy"
|
|
57
|
+
},
|
|
58
|
+
"energy_building_consumption": {
|
|
59
|
+
"name": "Consumo del edificio hoy"
|
|
60
|
+
},
|
|
61
|
+
"energy_grid_consumed": {
|
|
62
|
+
"name": "Energ\u00eda consumida de la red hoy"
|
|
63
|
+
},
|
|
64
|
+
"energy_grid_injected": {
|
|
65
|
+
"name": "Energ\u00eda inyectada a la red hoy"
|
|
66
|
+
},
|
|
67
|
+
"energy_pv": {
|
|
68
|
+
"name": "Energ\u00eda fotovoltaica hoy"
|
|
69
|
+
},
|
|
41
70
|
"grid_current_l1": {
|
|
42
71
|
"name": "Corriente de red L1"
|
|
43
72
|
},
|
|
@@ -77,9 +106,40 @@
|
|
|
77
106
|
"inverter_injection_power_limit": {
|
|
78
107
|
"name": "L\u00edmite de potencia de inyecci\u00f3n"
|
|
79
108
|
},
|
|
109
|
+
"manager_inverter_state": {
|
|
110
|
+
"name": "Estado del inversor",
|
|
111
|
+
"state": {
|
|
112
|
+
"grid_consumption": "Consumo de la red",
|
|
113
|
+
"grid_injection": "Inyecci\u00f3n a la red",
|
|
114
|
+
"grid_synchronised_but_not_used": "Red no sincronizada pero utilizada",
|
|
115
|
+
"not_connected": "No conectado",
|
|
116
|
+
"unsynchronized": "No sincronizado"
|
|
117
|
+
}
|
|
118
|
+
},
|
|
80
119
|
"meter_power": {
|
|
81
120
|
"name": "Potencia del contador"
|
|
82
121
|
},
|
|
122
|
+
"monitoring_minute_building_consumption": {
|
|
123
|
+
"name": "Consumo del edificio"
|
|
124
|
+
},
|
|
125
|
+
"monitoring_minute_grid_consumption": {
|
|
126
|
+
"name": "Consumo de la red"
|
|
127
|
+
},
|
|
128
|
+
"monitoring_minute_grid_injection": {
|
|
129
|
+
"name": "Inyecci\u00f3n a la red"
|
|
130
|
+
},
|
|
131
|
+
"monitoring_minute_grid_power_flow": {
|
|
132
|
+
"name": "Flujo de energ\u00eda de la red"
|
|
133
|
+
},
|
|
134
|
+
"monitoring_minute_solar_production": {
|
|
135
|
+
"name": "Producci\u00f3n solar"
|
|
136
|
+
},
|
|
137
|
+
"monitoring_self_consumption": {
|
|
138
|
+
"name": "Autoconsumo"
|
|
139
|
+
},
|
|
140
|
+
"monitoring_self_sufficiency": {
|
|
141
|
+
"name": "Autosuficiencia"
|
|
142
|
+
},
|
|
83
143
|
"output_current_l1": {
|
|
84
144
|
"name": "Corriente de salida L1"
|
|
85
145
|
},
|
|
@@ -133,6 +193,26 @@
|
|
|
133
193
|
},
|
|
134
194
|
"temp_component_temperature": {
|
|
135
195
|
"name": "Temperatura del componente"
|
|
196
|
+
},
|
|
197
|
+
"timeline_type_msg": {
|
|
198
|
+
"name": "Estado de la l\u00ednea de tiempo",
|
|
199
|
+
"state": {
|
|
200
|
+
"com_lost": "Comunicaci\u00f3n perdida.",
|
|
201
|
+
"error_bat": "Se ha detectado un error en la bater\u00eda",
|
|
202
|
+
"error_grid": "Se ha detectado un error en la red el\u00e9ctrica.",
|
|
203
|
+
"error_ond": "Se ha detectado un error en el inversor.",
|
|
204
|
+
"error_pv": "Error en el sistema fotovoltaico detectado.",
|
|
205
|
+
"error_soft": "Error de software detectado.",
|
|
206
|
+
"good_1": "Sistema funcionando normalmente.",
|
|
207
|
+
"info_bat": "Informaci\u00f3n de la bater\u00eda disponible.",
|
|
208
|
+
"info_ond": "Informaci\u00f3n del inversor disponible.",
|
|
209
|
+
"info_smartlo": "Informaci\u00f3n de carga inteligente disponible.",
|
|
210
|
+
"info_soft": "Informaci\u00f3n del software disponible.",
|
|
211
|
+
"warning_bat": "Advertencia de bater\u00eda detectada.",
|
|
212
|
+
"warning_grid": "Advertencia de red el\u00e9ctrica detectada.",
|
|
213
|
+
"warning_pv": "Advertencia de sistema fotovoltaico detectada.",
|
|
214
|
+
"web_account": "Notificaci\u00f3n de cuenta web."
|
|
215
|
+
}
|
|
136
216
|
}
|
|
137
217
|
}
|
|
138
218
|
}
|
|
@@ -156,8 +156,56 @@
|
|
|
156
156
|
"config_panel": {
|
|
157
157
|
"entities": {
|
|
158
158
|
"create": {
|
|
159
|
+
"_": {
|
|
160
|
+
"entity": {
|
|
161
|
+
"description": "Configuraci\u00f3n espec\u00edfica de Home Assistant.",
|
|
162
|
+
"device_description": "Un dispositivo permite agrupar varias entidades. Selecciona el dispositivo al que pertenece esta entidad o crea uno nuevo.",
|
|
163
|
+
"entity_category_description": "Clasificaci\u00f3n de una entidad no primaria. D\u00e9jala en blanco para comportamiento est\u00e1ndar.",
|
|
164
|
+
"entity_category_title": "Categor\u00eda de la entidad",
|
|
165
|
+
"entity_description": "Opcional si se selecciona un dispositivo; obligatorio en caso contrario. Si la entidad est\u00e1 asignada a un dispositivo, se utiliza el nombre del dispositivo como prefijo.",
|
|
166
|
+
"entity_label": "Nombre de la entidad",
|
|
167
|
+
"name_description": "Define c\u00f3mo debe nombrarse la entidad en Home Assistant.",
|
|
168
|
+
"name_title": "Nombre del dispositivo y de la entidad",
|
|
169
|
+
"title": "Configuraci\u00f3n de entidad"
|
|
170
|
+
},
|
|
171
|
+
"knx": {
|
|
172
|
+
"knx_group_address": {
|
|
173
|
+
"dpt": "Tipo de punto de datos",
|
|
174
|
+
"passive_addresses": "Direcciones pasivas",
|
|
175
|
+
"send_address": "Direcci\u00f3n de env\u00edo",
|
|
176
|
+
"state_address": "Direcci\u00f3n del estado",
|
|
177
|
+
"valid_dpts": "DPT v\u00e1lidos"
|
|
178
|
+
},
|
|
179
|
+
"sync_state": {
|
|
180
|
+
"description": "Solicitar activamente actualizaciones de estado del bus KNX para direcciones de estado.",
|
|
181
|
+
"options": {
|
|
182
|
+
"every": "Programado cada",
|
|
183
|
+
"expire": "Caduca tras la \u00faltima actualizaci\u00f3n del valor",
|
|
184
|
+
"false": "Nunca",
|
|
185
|
+
"init": "Una vez establecida la conexi\u00f3n",
|
|
186
|
+
"true": "Utilizar el valor predeterminado de la integraci\u00f3n"
|
|
187
|
+
},
|
|
188
|
+
"strategy": "Estrategia",
|
|
189
|
+
"title": "Actualizador de estado"
|
|
190
|
+
},
|
|
191
|
+
"title": "Configuraci\u00f3n KNX"
|
|
192
|
+
}
|
|
193
|
+
},
|
|
159
194
|
"binary_sensor": {
|
|
195
|
+
"description": "Entidad de solo lectura para puntos de datos binarios. Estados de ventanas o puertas, etc.",
|
|
160
196
|
"knx": {
|
|
197
|
+
"context_timeout": {
|
|
198
|
+
"description": "El tiempo en segundos entre varios payloads de telegramas id\u00e9nticos que contar\u00edan para un contador interno. Esto puede usarse para automatizar los clics m\u00faltiples en un bot\u00f3n. \"0\" para desactivar esta funci\u00f3n.",
|
|
199
|
+
"label": "Tiempo de espera del contexto"
|
|
200
|
+
},
|
|
201
|
+
"ignore_internal_state": {
|
|
202
|
+
"description": "Escribe cada actualizaci\u00f3n en la m\u00e1quina de estados, incluso si los datos son los mismos.",
|
|
203
|
+
"label": "Forzar actualizaci\u00f3n"
|
|
204
|
+
},
|
|
205
|
+
"invert": {
|
|
206
|
+
"description": "Invertir el payload antes de procesarlo.",
|
|
207
|
+
"label": "Invertir"
|
|
208
|
+
},
|
|
161
209
|
"reset_after": {
|
|
162
210
|
"description": "Vuelve al estado \"apagado\" despu\u00e9s de los segundos especificados.",
|
|
163
211
|
"label": "Restablecer despu\u00e9s de"
|
|
@@ -181,6 +229,9 @@
|
|
|
181
229
|
"ga_position_set": {
|
|
182
230
|
"label": "Establecer posici\u00f3n"
|
|
183
231
|
},
|
|
232
|
+
"ga_position_state": {
|
|
233
|
+
"label": "Posici\u00f3n actual"
|
|
234
|
+
},
|
|
184
235
|
"ga_step": {
|
|
185
236
|
"label": "Movimiento paso a paso"
|
|
186
237
|
},
|
|
@@ -223,13 +274,61 @@
|
|
|
223
274
|
"title": "Duraci\u00f3n del recorrido"
|
|
224
275
|
},
|
|
225
276
|
"travelling_time_down": {
|
|
226
|
-
"description": "Tiempo que necesita la cubierta para cerrarse completamente en segundos."
|
|
277
|
+
"description": "Tiempo que necesita la cubierta para cerrarse completamente en segundos.",
|
|
278
|
+
"label": "Tiempo de viaje para el cierre"
|
|
279
|
+
},
|
|
280
|
+
"travelling_time_up": {
|
|
281
|
+
"description": "Tiempo que la tapa necesita para abrirse completamente en segundos.",
|
|
282
|
+
"label": "Tiempo de viaje para la apertura"
|
|
227
283
|
}
|
|
228
284
|
}
|
|
229
285
|
},
|
|
286
|
+
"header": "Crear una nueva entidad",
|
|
230
287
|
"light": {
|
|
288
|
+
"description": "La plataforma de iluminaci\u00f3n KNX se utiliza como interfaz para actuadores de atenuaci\u00f3n, controladores LED, pasarelas DALI y similares.",
|
|
231
289
|
"knx": {
|
|
232
290
|
"color": {
|
|
291
|
+
"description": "Controla el color de la luz.",
|
|
292
|
+
"ga_blue_brightness": {
|
|
293
|
+
"label": "Brillo del azul"
|
|
294
|
+
},
|
|
295
|
+
"ga_blue_switch": {
|
|
296
|
+
"label": "Interruptor azul"
|
|
297
|
+
},
|
|
298
|
+
"ga_color": {
|
|
299
|
+
"label": "Color",
|
|
300
|
+
"options": {
|
|
301
|
+
"232_600": "RGB",
|
|
302
|
+
"242_600": "XYY",
|
|
303
|
+
"251_600": "RGBW"
|
|
304
|
+
}
|
|
305
|
+
},
|
|
306
|
+
"ga_green_brightness": {
|
|
307
|
+
"label": "Brillo del verde"
|
|
308
|
+
},
|
|
309
|
+
"ga_green_switch": {
|
|
310
|
+
"label": "Interruptor verde"
|
|
311
|
+
},
|
|
312
|
+
"ga_hue": {
|
|
313
|
+
"description": "Controla el tono de la luz.",
|
|
314
|
+
"label": "Matiz"
|
|
315
|
+
},
|
|
316
|
+
"ga_red_brightness": {
|
|
317
|
+
"label": "Brillo del rojo"
|
|
318
|
+
},
|
|
319
|
+
"ga_red_switch": {
|
|
320
|
+
"label": "Interruptor rojo"
|
|
321
|
+
},
|
|
322
|
+
"ga_saturation": {
|
|
323
|
+
"description": "Controla la saturaci\u00f3n de la luz.",
|
|
324
|
+
"label": "Saturaci\u00f3n"
|
|
325
|
+
},
|
|
326
|
+
"ga_white_brightness": {
|
|
327
|
+
"label": "Brillo del blanco"
|
|
328
|
+
},
|
|
329
|
+
"ga_white_switch": {
|
|
330
|
+
"label": "Interruptor blanco"
|
|
331
|
+
},
|
|
233
332
|
"options": {
|
|
234
333
|
"hsv_addresses": {
|
|
235
334
|
"description": "Tono, saturaci\u00f3n y brillo utilizando direcciones de grupo individuales.",
|
|
@@ -245,15 +344,19 @@
|
|
|
245
344
|
}
|
|
246
345
|
},
|
|
247
346
|
"section_blue": {
|
|
347
|
+
"description": "Controla el componente de color azul de la luz. Se requiere la direcci\u00f3n del grupo de brillo.",
|
|
248
348
|
"title": "Azul"
|
|
249
349
|
},
|
|
250
350
|
"section_green": {
|
|
351
|
+
"description": "Controla el componente de color verde de la luz. Se requiere la direcci\u00f3n del grupo de brillo.",
|
|
251
352
|
"title": "Verde"
|
|
252
353
|
},
|
|
253
354
|
"section_red": {
|
|
355
|
+
"description": "Controla el componente de color rojo de la luz. Se requiere la direcci\u00f3n del grupo de brillo.",
|
|
254
356
|
"title": "Rojo"
|
|
255
357
|
},
|
|
256
358
|
"section_white": {
|
|
359
|
+
"description": "Controla el componente de color blanco de la luz. Se requiere la direcci\u00f3n del grupo de brillo.",
|
|
257
360
|
"title": "Blanco"
|
|
258
361
|
},
|
|
259
362
|
"title": "Color"
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"entity_component": {
|
|
27
27
|
"_": {
|
|
28
|
-
"name": "
|
|
28
|
+
"name": "Z\u00e1mek",
|
|
29
29
|
"state": {
|
|
30
30
|
"jammed": "Zaseknuto",
|
|
31
31
|
"locked": "Zam\u010deno",
|
|
@@ -82,5 +82,5 @@
|
|
|
82
82
|
"name": "Odemknout"
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
|
-
"title": "
|
|
85
|
+
"title": "Z\u00e1mek"
|
|
86
86
|
}
|
|
@@ -47,6 +47,9 @@
|
|
|
47
47
|
},
|
|
48
48
|
"entity": {
|
|
49
49
|
"binary_sensor": {
|
|
50
|
+
"alarm_door": {
|
|
51
|
+
"name": "Alarma de puerta"
|
|
52
|
+
},
|
|
50
53
|
"battery_alert": {
|
|
51
54
|
"name": "Alerta de bater\u00eda"
|
|
52
55
|
},
|
|
@@ -112,6 +115,9 @@
|
|
|
112
115
|
"resume": {
|
|
113
116
|
"name": "Reanudar"
|
|
114
117
|
},
|
|
118
|
+
"self_test_request": {
|
|
119
|
+
"name": "Autodiagn\u00f3stico"
|
|
120
|
+
},
|
|
115
121
|
"start": {
|
|
116
122
|
"name": "Iniciar"
|
|
117
123
|
},
|
|
@@ -298,6 +304,9 @@
|
|
|
298
304
|
"activated_carbon_filter_condition": {
|
|
299
305
|
"name": "Estado del filtro de carb\u00f3n activado"
|
|
300
306
|
},
|
|
307
|
+
"active_current": {
|
|
308
|
+
"name": "Corriente activa"
|
|
309
|
+
},
|
|
301
310
|
"air_quality": {
|
|
302
311
|
"name": "Calidad del aire",
|
|
303
312
|
"state": {
|
|
@@ -309,6 +318,9 @@
|
|
|
309
318
|
"very_poor": "Muy pobre"
|
|
310
319
|
}
|
|
311
320
|
},
|
|
321
|
+
"apparent_current": {
|
|
322
|
+
"name": "Corriente aparente"
|
|
323
|
+
},
|
|
312
324
|
"auto_close_time": {
|
|
313
325
|
"name": "Hora de cierre autom\u00e1tico"
|
|
314
326
|
},
|
|
@@ -372,6 +384,15 @@
|
|
|
372
384
|
"estimated_heat_required": {
|
|
373
385
|
"name": "Energ\u00eda calor\u00edfica necesaria"
|
|
374
386
|
},
|
|
387
|
+
"eve_weather_trend": {
|
|
388
|
+
"name": "Tendencia meteorol\u00f3gica",
|
|
389
|
+
"state": {
|
|
390
|
+
"cloudy": "Nublado",
|
|
391
|
+
"rainy": "Lluvioso",
|
|
392
|
+
"stormy": "Tormentoso",
|
|
393
|
+
"sunny": "Soleado"
|
|
394
|
+
}
|
|
395
|
+
},
|
|
375
396
|
"evse_charge_current": {
|
|
376
397
|
"name": "Corriente de carga"
|
|
377
398
|
},
|
|
@@ -446,6 +467,15 @@
|
|
|
446
467
|
"pump_speed": {
|
|
447
468
|
"name": "Velocidad de rotaci\u00f3n"
|
|
448
469
|
},
|
|
470
|
+
"reactive_current": {
|
|
471
|
+
"name": "Corriente reactiva"
|
|
472
|
+
},
|
|
473
|
+
"rms_current": {
|
|
474
|
+
"name": "Corriente efectiva"
|
|
475
|
+
},
|
|
476
|
+
"rms_voltage": {
|
|
477
|
+
"name": "Tensi\u00f3n efectiva"
|
|
478
|
+
},
|
|
449
479
|
"switch_current_position": {
|
|
450
480
|
"name": "Posici\u00f3n actual del interruptor"
|
|
451
481
|
},
|
|
@@ -458,6 +488,9 @@
|
|
|
458
488
|
"valve_position": {
|
|
459
489
|
"name": "Posici\u00f3n de la v\u00e1lvula"
|
|
460
490
|
},
|
|
491
|
+
"voltage": {
|
|
492
|
+
"name": "Tensi\u00f3n"
|
|
493
|
+
},
|
|
461
494
|
"window_covering_target_position": {
|
|
462
495
|
"name": "Posici\u00f3n de apertura objetivo"
|
|
463
496
|
}
|
|
@@ -188,6 +188,7 @@
|
|
|
188
188
|
"name": "ID de contenido"
|
|
189
189
|
},
|
|
190
190
|
"media_content_type": {
|
|
191
|
+
"description": "El tipo de contenido que se va a explorar, como imagen, m\u00fasica, programa de TV, v\u00eddeo, episodio, canal o lista de reproducci\u00f3n.",
|
|
191
192
|
"name": "Tipo de contenido"
|
|
192
193
|
}
|
|
193
194
|
},
|
|
@@ -251,6 +252,10 @@
|
|
|
251
252
|
"enqueue": {
|
|
252
253
|
"description": "Si el contenido debe reproducirse ahora o a\u00f1adirse a la cola.",
|
|
253
254
|
"name": "Poner en cola"
|
|
255
|
+
},
|
|
256
|
+
"media": {
|
|
257
|
+
"description": "El medio seleccionado para reproducir.",
|
|
258
|
+
"name": "Medios"
|
|
254
259
|
}
|
|
255
260
|
},
|
|
256
261
|
"name": "Reproducir contenido multimedia"
|
|
@@ -273,7 +278,7 @@
|
|
|
273
278
|
"name": "ID de contenido"
|
|
274
279
|
},
|
|
275
280
|
"media_content_type": {
|
|
276
|
-
"description": "El tipo de contenido que se
|
|
281
|
+
"description": "El tipo de contenido que se va a explorar, como imagen, m\u00fasica, programa de TV, v\u00eddeo, episodio, canal o lista de reproducci\u00f3n.",
|
|
277
282
|
"name": "Tipo de contenido"
|
|
278
283
|
},
|
|
279
284
|
"media_filter_classes": {
|
|
@@ -239,6 +239,7 @@
|
|
|
239
239
|
"plate_step_8": "4\u2022",
|
|
240
240
|
"plate_step_9": "5",
|
|
241
241
|
"plate_step_boost": "Impulso",
|
|
242
|
+
"plate_step_boost_2": "Impulso 2",
|
|
242
243
|
"plate_step_warm": "Calentando"
|
|
243
244
|
}
|
|
244
245
|
},
|
|
@@ -899,6 +900,18 @@
|
|
|
899
900
|
"yom_tov": "Yom tov",
|
|
900
901
|
"yorkshire_pudding": "Pudin de Yorkshire",
|
|
901
902
|
"zander_fillet": "Lucioperca (filete)"
|
|
903
|
+
},
|
|
904
|
+
"state_attributes": {
|
|
905
|
+
"profile": {
|
|
906
|
+
"name": "Perfil",
|
|
907
|
+
"state": {
|
|
908
|
+
"profile_1": "Perfil 1",
|
|
909
|
+
"profile_2": "Perfil 2",
|
|
910
|
+
"profile_3": "Perfil 3",
|
|
911
|
+
"profile_4": "Perfil 4",
|
|
912
|
+
"profile_5": "Perfil 5"
|
|
913
|
+
}
|
|
914
|
+
}
|
|
902
915
|
}
|
|
903
916
|
},
|
|
904
917
|
"program_phase": {
|
|
@@ -157,5 +157,8 @@ class SlaveSensor(
|
|
|
157
157
|
def _handle_coordinator_update(self) -> None:
|
|
158
158
|
"""Handle updated data from the coordinator."""
|
|
159
159
|
result = self.coordinator.data
|
|
160
|
-
|
|
160
|
+
if not result or self._result_inx >= len(result):
|
|
161
|
+
self._attr_is_on = None
|
|
162
|
+
else:
|
|
163
|
+
self._attr_is_on = bool(result[self._result_inx] & 1)
|
|
161
164
|
super()._handle_coordinator_update()
|
|
@@ -363,7 +363,7 @@ class ModbusThermostat(BaseStructPlatform, RestoreEntity, ClimateEntity):
|
|
|
363
363
|
)
|
|
364
364
|
break
|
|
365
365
|
|
|
366
|
-
await self.
|
|
366
|
+
await self.async_local_update(cancel_pending_update=True)
|
|
367
367
|
|
|
368
368
|
async def async_set_fan_mode(self, fan_mode: str) -> None:
|
|
369
369
|
"""Set new target fan mode."""
|
|
@@ -385,7 +385,7 @@ class ModbusThermostat(BaseStructPlatform, RestoreEntity, ClimateEntity):
|
|
|
385
385
|
CALL_TYPE_WRITE_REGISTER,
|
|
386
386
|
)
|
|
387
387
|
|
|
388
|
-
await self.
|
|
388
|
+
await self.async_local_update(cancel_pending_update=True)
|
|
389
389
|
|
|
390
390
|
async def async_set_swing_mode(self, swing_mode: str) -> None:
|
|
391
391
|
"""Set new target swing mode."""
|
|
@@ -408,7 +408,7 @@ class ModbusThermostat(BaseStructPlatform, RestoreEntity, ClimateEntity):
|
|
|
408
408
|
CALL_TYPE_WRITE_REGISTER,
|
|
409
409
|
)
|
|
410
410
|
break
|
|
411
|
-
await self.
|
|
411
|
+
await self.async_local_update(cancel_pending_update=True)
|
|
412
412
|
|
|
413
413
|
async def async_set_temperature(self, **kwargs: Any) -> None:
|
|
414
414
|
"""Set new target temperature."""
|
|
@@ -463,7 +463,7 @@ class ModbusThermostat(BaseStructPlatform, RestoreEntity, ClimateEntity):
|
|
|
463
463
|
CALL_TYPE_WRITE_REGISTERS,
|
|
464
464
|
)
|
|
465
465
|
self._attr_available = result is not None
|
|
466
|
-
await self.
|
|
466
|
+
await self.async_local_update(cancel_pending_update=True)
|
|
467
467
|
|
|
468
468
|
async def _async_update(self) -> None:
|
|
469
469
|
"""Update Target & Current Temperature."""
|
|
@@ -111,7 +111,7 @@ class ModbusCover(BasePlatform, CoverEntity, RestoreEntity):
|
|
|
111
111
|
self._slave, self._write_address, self._state_open, self._write_type
|
|
112
112
|
)
|
|
113
113
|
self._attr_available = result is not None
|
|
114
|
-
await self.
|
|
114
|
+
await self.async_local_update(cancel_pending_update=True)
|
|
115
115
|
|
|
116
116
|
async def async_close_cover(self, **kwargs: Any) -> None:
|
|
117
117
|
"""Close cover."""
|
|
@@ -119,7 +119,7 @@ class ModbusCover(BasePlatform, CoverEntity, RestoreEntity):
|
|
|
119
119
|
self._slave, self._write_address, self._state_closed, self._write_type
|
|
120
120
|
)
|
|
121
121
|
self._attr_available = result is not None
|
|
122
|
-
await self.
|
|
122
|
+
await self.async_local_update(cancel_pending_update=True)
|
|
123
123
|
|
|
124
124
|
async def _async_update(self) -> None:
|
|
125
125
|
"""Update the state of the cover."""
|
|
@@ -112,14 +112,16 @@ class BasePlatform(Entity):
|
|
|
112
112
|
async def _async_update(self) -> None:
|
|
113
113
|
"""Virtual function to be overwritten."""
|
|
114
114
|
|
|
115
|
-
async def async_update(self) -> None:
|
|
115
|
+
async def async_update(self, now: datetime | None = None) -> None:
|
|
116
116
|
"""Update the entity state."""
|
|
117
|
-
|
|
118
|
-
self._cancel_call()
|
|
119
|
-
await self.async_local_update()
|
|
117
|
+
await self.async_local_update(cancel_pending_update=True)
|
|
120
118
|
|
|
121
|
-
async def async_local_update(
|
|
119
|
+
async def async_local_update(
|
|
120
|
+
self, now: datetime | None = None, cancel_pending_update: bool = False
|
|
121
|
+
) -> None:
|
|
122
122
|
"""Update the entity state."""
|
|
123
|
+
if cancel_pending_update and self._cancel_call:
|
|
124
|
+
self._cancel_call()
|
|
123
125
|
await self._async_update()
|
|
124
126
|
self.async_write_ha_state()
|
|
125
127
|
if self._scan_interval > 0:
|
|
@@ -131,62 +133,22 @@ class BasePlatform(Entity):
|
|
|
131
133
|
|
|
132
134
|
async def async_will_remove_from_hass(self) -> None:
|
|
133
135
|
"""Remove entity from hass."""
|
|
134
|
-
|
|
135
|
-
if self._cancel_call:
|
|
136
|
-
self._cancel_call()
|
|
137
|
-
self._cancel_call = None
|
|
136
|
+
self.async_disable()
|
|
138
137
|
|
|
139
138
|
@callback
|
|
140
|
-
def
|
|
139
|
+
def async_disable(self) -> None:
|
|
141
140
|
"""Remote stop entity."""
|
|
142
|
-
_LOGGER.
|
|
143
|
-
self._async_cancel_future_pending_update()
|
|
144
|
-
self._attr_available = False
|
|
145
|
-
self.async_write_ha_state()
|
|
146
|
-
|
|
147
|
-
async def _async_update_write_state(self) -> None:
|
|
148
|
-
"""Update the entity state and write it to the state machine."""
|
|
141
|
+
_LOGGER.info(f"hold entity {self._attr_name}")
|
|
149
142
|
if self._cancel_call:
|
|
150
143
|
self._cancel_call()
|
|
151
144
|
self._cancel_call = None
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
async def _async_update_if_not_in_progress(
|
|
155
|
-
self, now: datetime | None = None
|
|
156
|
-
) -> None:
|
|
157
|
-
"""Update the entity state if not already in progress."""
|
|
158
|
-
await self._async_update_write_state()
|
|
159
|
-
|
|
160
|
-
@callback
|
|
161
|
-
def async_run(self) -> None:
|
|
162
|
-
"""Remote start entity."""
|
|
163
|
-
_LOGGER.info(f"start entity {self._attr_name}")
|
|
164
|
-
self._async_schedule_future_update(0.1)
|
|
165
|
-
self._cancel_call = async_call_later(
|
|
166
|
-
self.hass, timedelta(seconds=0.1), self.async_local_update
|
|
167
|
-
)
|
|
168
|
-
self._attr_available = True
|
|
145
|
+
self._attr_available = False
|
|
169
146
|
self.async_write_ha_state()
|
|
170
147
|
|
|
171
|
-
@callback
|
|
172
|
-
def _async_schedule_future_update(self, delay: float) -> None:
|
|
173
|
-
"""Schedule an update in the future."""
|
|
174
|
-
self._async_cancel_future_pending_update()
|
|
175
|
-
self._cancel_call = async_call_later(
|
|
176
|
-
self.hass, delay, self._async_update_if_not_in_progress
|
|
177
|
-
)
|
|
178
|
-
|
|
179
|
-
@callback
|
|
180
|
-
def _async_cancel_future_pending_update(self) -> None:
|
|
181
|
-
"""Cancel a future pending update."""
|
|
182
|
-
if self._cancel_call:
|
|
183
|
-
self._cancel_call()
|
|
184
|
-
self._cancel_call = None
|
|
185
|
-
|
|
186
148
|
async def async_await_connection(self, _now: Any) -> None:
|
|
187
149
|
"""Wait for first connect."""
|
|
188
150
|
await self._hub.event_connected.wait()
|
|
189
|
-
self.
|
|
151
|
+
await self.async_local_update(cancel_pending_update=True)
|
|
190
152
|
|
|
191
153
|
async def async_base_added_to_hass(self) -> None:
|
|
192
154
|
"""Handle entity which will be added."""
|
|
@@ -198,10 +160,12 @@ class BasePlatform(Entity):
|
|
|
198
160
|
)
|
|
199
161
|
)
|
|
200
162
|
self.async_on_remove(
|
|
201
|
-
async_dispatcher_connect(self.hass, SIGNAL_STOP_ENTITY, self.
|
|
163
|
+
async_dispatcher_connect(self.hass, SIGNAL_STOP_ENTITY, self.async_disable)
|
|
202
164
|
)
|
|
203
165
|
self.async_on_remove(
|
|
204
|
-
async_dispatcher_connect(
|
|
166
|
+
async_dispatcher_connect(
|
|
167
|
+
self.hass, SIGNAL_START_ENTITY, self.async_local_update
|
|
168
|
+
)
|
|
205
169
|
)
|
|
206
170
|
|
|
207
171
|
|
|
@@ -388,10 +352,15 @@ class BaseSwitch(BasePlatform, ToggleEntity, RestoreEntity):
|
|
|
388
352
|
return
|
|
389
353
|
|
|
390
354
|
if self._verify_delay:
|
|
391
|
-
self.
|
|
355
|
+
assert self._verify_delay == 1
|
|
356
|
+
if self._cancel_call:
|
|
357
|
+
self._cancel_call()
|
|
358
|
+
self._cancel_call = None
|
|
359
|
+
self._cancel_call = async_call_later(
|
|
360
|
+
self.hass, self._verify_delay, self.async_update
|
|
361
|
+
)
|
|
392
362
|
return
|
|
393
|
-
|
|
394
|
-
await self._async_update_write_state()
|
|
363
|
+
await self.async_local_update(cancel_pending_update=True)
|
|
395
364
|
|
|
396
365
|
async def async_turn_off(self, **kwargs: Any) -> None:
|
|
397
366
|
"""Set switch off."""
|
|
@@ -312,15 +312,14 @@ class ModbusHub:
|
|
|
312
312
|
async def async_pb_connect(self) -> None:
|
|
313
313
|
"""Connect to device, async."""
|
|
314
314
|
while True:
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
self.
|
|
322
|
-
|
|
323
|
-
)
|
|
315
|
+
try:
|
|
316
|
+
if await self._client.connect(): # type: ignore[union-attr]
|
|
317
|
+
_LOGGER.info(f"modbus {self.name} communication open")
|
|
318
|
+
break
|
|
319
|
+
except ModbusException as exception_error:
|
|
320
|
+
self._log_error(
|
|
321
|
+
f"{self.name} connect failed, please check your configuration ({exception_error!s})"
|
|
322
|
+
)
|
|
324
323
|
_LOGGER.info(
|
|
325
324
|
f"modbus {self.name} connect NOT a success ! retrying in {PRIMARY_RECONNECT_DELAY} seconds"
|
|
326
325
|
)
|
|
@@ -181,6 +181,10 @@ class SlaveSensor(
|
|
|
181
181
|
def _handle_coordinator_update(self) -> None:
|
|
182
182
|
"""Handle updated data from the coordinator."""
|
|
183
183
|
result = self.coordinator.data
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
if not result or self._idx >= len(result):
|
|
185
|
+
self._attr_native_value = None
|
|
186
|
+
self._attr_available = False
|
|
187
|
+
else:
|
|
188
|
+
self._attr_native_value = result[self._idx]
|
|
189
|
+
self._attr_available = True
|
|
186
190
|
super()._handle_coordinator_update()
|