441 lines
15 KiB
JSON
441 lines
15 KiB
JSON
{
|
|
"config": {
|
|
"step": {
|
|
"user": {
|
|
"title": "Configuración de WashData",
|
|
"description": "Configura tu lavadora u otro electrodoméstico.\n\nSe requiere un sensor de potencia.\n\n**A continuación, se te preguntará si deseas crear tu primer perfil.**",
|
|
"data": {
|
|
"name": "Nombre del dispositivo",
|
|
"device_type": "Tipo de dispositivo",
|
|
"power_sensor": "Sensor de potencia",
|
|
"min_power": "Umbral mínimo de potencia (W)"
|
|
},
|
|
"data_description": {
|
|
"name": "Un nombre descriptivo para este dispositivo (p. ej., «Lavadora», «Lavavajillas»).",
|
|
"device_type": "¿Qué tipo de electrodoméstico es este? Ayuda a personalizar la detección y el etiquetado.",
|
|
"power_sensor": "La entidad de sensor que informa el consumo de potencia en tiempo real (en vatios) desde tu enchufe inteligente.",
|
|
"min_power": "Las lecturas de potencia por encima de este umbral (en vatios) indican que el electrodoméstico está en funcionamiento. Empieza con 2 W para la mayoría de los dispositivos."
|
|
}
|
|
},
|
|
"reconfigure": {
|
|
"title": "Reconfigurar WashData",
|
|
"description": "Actualiza el nombre del dispositivo, el tipo de electrodoméstico o el sensor de potencia.",
|
|
"data": {
|
|
"name": "Nombre del dispositivo",
|
|
"device_type": "Tipo de dispositivo",
|
|
"power_sensor": "Sensor de potencia",
|
|
"min_power": "Umbral mínimo de potencia (W)"
|
|
}
|
|
}
|
|
},
|
|
"error": {
|
|
"cannot_connect": "No se pudo conectar",
|
|
"invalid_auth": "Autenticación no válida",
|
|
"unknown": "Error inesperado",
|
|
"invalid_power": "El umbral de potencia debe ser mayor que 0"
|
|
},
|
|
"abort": {
|
|
"already_configured": "El dispositivo ya está configurado",
|
|
"reconfigure_successful": "La reconfiguración fue exitosa"
|
|
}
|
|
},
|
|
"options": {
|
|
"step": {
|
|
"init": {
|
|
"title": "Ajustes de WashData",
|
|
"description": "Todos los ajustes — detección, coincidencia, temporización, notificaciones, perfiles y ciclos — están disponibles en el panel de WashData. Usa este formulario solo para cambiar el sensor de potencia, el tipo de dispositivo o el umbral en espera.",
|
|
"data": {
|
|
"name": "Nombre del dispositivo",
|
|
"device_type": "Tipo de dispositivo",
|
|
"power_sensor": "Sensor de potencia",
|
|
"min_power": "Umbral mínimo de potencia (W)"
|
|
}
|
|
}
|
|
},
|
|
"error": {
|
|
"timer_default_message": "{device}: temporizador de {minutes} min",
|
|
"timer_pause_action_title": "Reanudar ciclo",
|
|
"timer_pause_body_suffix": "El ciclo está en pausa. Abre el panel de WashData para reanudarlo.",
|
|
"notify_live_waiting_message": "{device}: todavía no se ha reconocido ningún perfil.",
|
|
"vs_typical_longer": "{pct}% más largo de lo habitual",
|
|
"vs_typical_shorter": "{pct}% más corto de lo habitual",
|
|
"invalid_power": "El umbral de potencia debe ser mayor que 0"
|
|
}
|
|
},
|
|
"selector": {
|
|
"device_type": {
|
|
"options": {
|
|
"washing_machine": "Lavadora",
|
|
"dryer": "Secadora",
|
|
"washer_dryer": "Combinación de lavadora y secadora",
|
|
"dishwasher": "Lavavajillas",
|
|
"air_fryer": "Freidora de aire",
|
|
"bread_maker": "Panificadora",
|
|
"pump": "Bomba / Bomba de sumidero",
|
|
"generic": "Otro (avanzado)",
|
|
"other": "Dispositivo de umbral"
|
|
}
|
|
}
|
|
},
|
|
"services": {
|
|
"label_cycle": {
|
|
"name": "Etiquetar ciclo",
|
|
"description": "Asigna un perfil existente a un ciclo anterior, o quita la etiqueta.",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "Dispositivo",
|
|
"description": "El dispositivo WashData a etiquetar."
|
|
},
|
|
"cycle_id": {
|
|
"name": "ID del ciclo",
|
|
"description": "El ID del ciclo a etiquetar."
|
|
},
|
|
"profile_name": {
|
|
"name": "Nombre del perfil",
|
|
"description": "El nombre de un perfil existente (crea perfiles en el menú Gestionar perfiles). Deja vacío para quitar la etiqueta."
|
|
}
|
|
}
|
|
},
|
|
"create_profile": {
|
|
"name": "Crear perfil",
|
|
"description": "Crea un nuevo perfil (independiente o basado en un ciclo de referencia).",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "Dispositivo",
|
|
"description": "El dispositivo WashData."
|
|
},
|
|
"profile_name": {
|
|
"name": "Nombre del perfil",
|
|
"description": "Nombre para el nuevo perfil (p. ej., «Resistente», «Delicados»)."
|
|
},
|
|
"reference_cycle_id": {
|
|
"name": "ID del ciclo de referencia",
|
|
"description": "ID de ciclo opcional en el que basar este perfil."
|
|
}
|
|
}
|
|
},
|
|
"delete_profile": {
|
|
"name": "Eliminar perfil",
|
|
"description": "Elimina un perfil y, opcionalmente, quita las etiquetas de los ciclos que lo usan.",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "Dispositivo",
|
|
"description": "El dispositivo WashData."
|
|
},
|
|
"profile_name": {
|
|
"name": "Nombre del perfil",
|
|
"description": "El perfil a eliminar."
|
|
},
|
|
"unlabel_cycles": {
|
|
"name": "Quitar etiqueta de ciclos",
|
|
"description": "Quitar la etiqueta de perfil de los ciclos que usan este perfil."
|
|
}
|
|
}
|
|
},
|
|
"auto_label_cycles": {
|
|
"name": "Etiquetar automáticamente ciclos antiguos",
|
|
"description": "Etiqueta retroactivamente ciclos sin etiquetar usando la coincidencia de perfiles.",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "Dispositivo",
|
|
"description": "El dispositivo WashData."
|
|
},
|
|
"confidence_threshold": {
|
|
"name": "Umbral de confianza",
|
|
"description": "Confianza mínima de coincidencia (0,50-0,95) para aplicar etiquetas."
|
|
}
|
|
}
|
|
},
|
|
"export_config": {
|
|
"name": "Exportar configuración",
|
|
"description": "Exporta los perfiles, ciclos y ajustes de este dispositivo a un archivo JSON (por dispositivo).",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "Dispositivo",
|
|
"description": "El dispositivo WashData a exportar."
|
|
},
|
|
"path": {
|
|
"name": "Ruta",
|
|
"description": "Ruta de archivo absoluta opcional para escribir (por defecto: /config/ha_washdata_export_{entry}.json)."
|
|
}
|
|
}
|
|
},
|
|
"import_config": {
|
|
"name": "Importar configuración",
|
|
"description": "Importa perfiles, ciclos y ajustes para este dispositivo desde un archivo JSON de exportación (los ajustes pueden sobrescribirse).",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "Dispositivo",
|
|
"description": "El dispositivo WashData al que importar."
|
|
},
|
|
"path": {
|
|
"name": "Ruta",
|
|
"description": "Ruta absoluta al archivo JSON de exportación a importar."
|
|
}
|
|
}
|
|
},
|
|
"submit_cycle_feedback": {
|
|
"name": "Enviar retroalimentación del ciclo",
|
|
"description": "Confirma o corrige un programa detectado automáticamente tras un ciclo completado. Proporciona `entry_id` (avanzado) o `device_id` (recomendado).",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "Dispositivo",
|
|
"description": "El dispositivo WashData (recomendado en lugar de entry_id)."
|
|
},
|
|
"entry_id": {
|
|
"name": "ID de entrada",
|
|
"description": "El ID de entrada de configuración del dispositivo (alternativa a device_id)."
|
|
},
|
|
"cycle_id": {
|
|
"name": "ID del ciclo",
|
|
"description": "El ID del ciclo que aparece en la notificación de retroalimentación / registros."
|
|
},
|
|
"user_confirmed": {
|
|
"name": "Confirmar programa detectado",
|
|
"description": "Establece verdadero si el programa detectado es correcto."
|
|
},
|
|
"corrected_profile": {
|
|
"name": "Perfil corregido",
|
|
"description": "Si no se confirma, proporciona el nombre correcto del perfil/programa."
|
|
},
|
|
"corrected_duration": {
|
|
"name": "Duración corregida (segundos)",
|
|
"description": "Duración corregida opcional en segundos."
|
|
},
|
|
"notes": {
|
|
"name": "Notas",
|
|
"description": "Notas opcionales sobre este ciclo."
|
|
}
|
|
}
|
|
},
|
|
"record_start": {
|
|
"name": "Iniciar grabación de ciclo",
|
|
"description": "Empieza a grabar manualmente un ciclo limpio (omite toda la lógica de coincidencia).",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "Dispositivo",
|
|
"description": "El dispositivo WashData a grabar."
|
|
}
|
|
}
|
|
},
|
|
"record_stop": {
|
|
"name": "Detener grabación de ciclo",
|
|
"description": "Detiene la grabación manual.",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "Dispositivo",
|
|
"description": "El dispositivo WashData para detener la grabación."
|
|
}
|
|
}
|
|
},
|
|
"trim_cycle": {
|
|
"name": "Recortar ciclo",
|
|
"description": "Recorta los datos de potencia de un ciclo anterior a una ventana de tiempo específica.",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "Dispositivo",
|
|
"description": "El dispositivo WashData."
|
|
},
|
|
"cycle_id": {
|
|
"name": "ID del ciclo",
|
|
"description": "El ID del ciclo a recortar."
|
|
},
|
|
"trim_start_s": {
|
|
"name": "Inicio del recorte (segundos)",
|
|
"description": "Conservar datos desde este desplazamiento en segundos. Predeterminado: 0."
|
|
},
|
|
"trim_end_s": {
|
|
"name": "Fin del recorte (segundos)",
|
|
"description": "Conservar datos hasta este desplazamiento en segundos. Predeterminado = duración completa."
|
|
}
|
|
}
|
|
},
|
|
"pause_cycle": {
|
|
"name": "Pausar ciclo",
|
|
"description": "Pausa el ciclo activo de un dispositivo WashData.",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "Dispositivo",
|
|
"description": "El dispositivo WashData se pausará."
|
|
}
|
|
}
|
|
},
|
|
"resume_cycle": {
|
|
"name": "Reanudar ciclo",
|
|
"description": "Reanudar un ciclo en pausa para un dispositivo WashData.",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "Dispositivo",
|
|
"description": "El dispositivo WashData para reanudar."
|
|
}
|
|
}
|
|
},
|
|
"trigger_ml_training": {
|
|
"name": "Activar entrenamiento de ML",
|
|
"description": "Reentrenar manualmente los modelos de ML del dispositivo usando los ciclos etiquetados propios de este dispositivo (experimental).",
|
|
"fields": {
|
|
"device_id": {
|
|
"name": "Dispositivo",
|
|
"description": "El dispositivo WashData para el que se reentrenan los modelos."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"entity": {
|
|
"binary_sensor": {
|
|
"running": {
|
|
"name": "En funcionamiento"
|
|
},
|
|
"match_ambiguity": {
|
|
"name": "Ambigüedad de coincidencia"
|
|
}
|
|
},
|
|
"sensor": {
|
|
"washer_state": {
|
|
"name": "Estado",
|
|
"state": {
|
|
"off": "Apagado",
|
|
"idle": "En espera",
|
|
"starting": "Iniciando",
|
|
"running": "En funcionamiento",
|
|
"paused": "En pausa",
|
|
"user_paused": "En pausa por el usuario",
|
|
"ending": "Finalizando",
|
|
"finished": "Finalizado",
|
|
"anti_wrinkle": "Antiarrugas",
|
|
"interrupted": "Interrumpido",
|
|
"force_stopped": "Parada forzada",
|
|
"rinse": "Aclarado",
|
|
"unknown": "Desconocido",
|
|
"clean": "Limpio",
|
|
"delay_wait": "Esperando para comenzar"
|
|
}
|
|
},
|
|
"washer_program": {
|
|
"name": "Programa"
|
|
},
|
|
"time_remaining": {
|
|
"name": "Tiempo restante"
|
|
},
|
|
"total_duration": {
|
|
"name": "Duración total"
|
|
},
|
|
"cycle_progress": {
|
|
"name": "Progreso"
|
|
},
|
|
"current_power": {
|
|
"name": "Potencia actual"
|
|
},
|
|
"elapsed_time": {
|
|
"name": "Tiempo transcurrido"
|
|
},
|
|
"debug_info": {
|
|
"name": "Información de depuración"
|
|
},
|
|
"match_confidence": {
|
|
"name": "Confianza de coincidencia"
|
|
},
|
|
"top_candidates": {
|
|
"name": "Mejores candidatos",
|
|
"state": {
|
|
"none": "Ninguno"
|
|
}
|
|
},
|
|
"ambiguity": {
|
|
"name": "Puntuación de ambigüedad"
|
|
},
|
|
"current_phase": {
|
|
"name": "Fase actual"
|
|
},
|
|
"profile_cycle_count": {
|
|
"name": "Recuento de ciclos del perfil {profile_name}",
|
|
"unit_of_measurement": "ciclos"
|
|
},
|
|
"suggestions": {
|
|
"name": "Ajustes sugeridos disponibles"
|
|
},
|
|
"pump_runs_today": {
|
|
"name": "Funcionamiento de la bomba (últimas 24 h)"
|
|
},
|
|
"cycle_count": {
|
|
"name": "Conteo de ciclos"
|
|
},
|
|
"energy_total": {
|
|
"name": "Energía total"
|
|
}
|
|
},
|
|
"select": {
|
|
"program_select": {
|
|
"name": "Programa del ciclo",
|
|
"state": {
|
|
"auto_detect": "Detección automática"
|
|
}
|
|
}
|
|
},
|
|
"button": {
|
|
"force_end_cycle": {
|
|
"name": "Forzar fin de ciclo"
|
|
},
|
|
"pause_cycle": {
|
|
"name": "Pausar ciclo"
|
|
},
|
|
"resume_cycle": {
|
|
"name": "Reanudar ciclo"
|
|
},
|
|
"record_start": {
|
|
"name": "Iniciar grabación de ciclo"
|
|
},
|
|
"record_stop": {
|
|
"name": "Detener grabación de ciclo"
|
|
}
|
|
}
|
|
},
|
|
"exceptions": {
|
|
"device_id_required": {
|
|
"message": "Se requiere un ID de dispositivo válido."
|
|
},
|
|
"cycle_id_required": {
|
|
"message": "Se requiere un cycle_id válido."
|
|
},
|
|
"profile_name_required": {
|
|
"message": "Se requiere un profile_name válido."
|
|
},
|
|
"device_not_found": {
|
|
"message": "Dispositivo no encontrado."
|
|
},
|
|
"no_config_entry": {
|
|
"message": "No se encontró ninguna entrada de configuración para el dispositivo."
|
|
},
|
|
"integration_not_loaded": {
|
|
"message": "La integración no está cargada para este dispositivo."
|
|
},
|
|
"cycle_not_found_or_no_power": {
|
|
"message": "Ciclo no encontrado o sin datos de potencia."
|
|
},
|
|
"trim_failed_empty_window": {
|
|
"message": "Error de recorte: ciclo no encontrado, sin datos de potencia o la ventana resultante está vacía."
|
|
},
|
|
"trim_invalid_range": {
|
|
"message": "trim_end_s debe ser mayor que trim_start_s."
|
|
},
|
|
"no_active_cycle": {
|
|
"message": "No hay ningún ciclo activo para pausar o reanudar."
|
|
},
|
|
"path_not_allowed": {
|
|
"message": "La ruta no está permitida: {path}. Añada su directorio a 'allowlist_external_dirs' en configuration.yaml."
|
|
},
|
|
"create_profile_failed": {
|
|
"message": "No se pudo crear el perfil: {error}"
|
|
},
|
|
"export_path_exists": {
|
|
"message": "El destino de exportación ya existe: {path}. Elija una ruta diferente o elimine primero el archivo existente."
|
|
},
|
|
"export_write_failed": {
|
|
"message": "No se pudo escribir la exportación en {path}: {error}"
|
|
},
|
|
"assign_profile_failed": {
|
|
"message": "No se pudo asignar el perfil: {error}"
|
|
}
|
|
}
|
|
}
|