{ "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." } }, "first_profile": { "title": "Crear primer perfil", "description": "Un **Ciclo** es una ejecución completa del electrodoméstico (p. ej., una carga de ropa). Un **Perfil** agrupa estos ciclos por tipo (p. ej., «Algodón», «Lavado rápido»). Crear un perfil ahora ayuda a la integración a estimar la duración de inmediato.\n\nPuedes seleccionar este perfil manualmente en los controles del dispositivo si no se detecta automáticamente.\n\n**Deja el «Nombre del perfil» vacío para omitir este paso.**", "data": { "profile_name": "Nombre del perfil (opcional)", "manual_duration": "Duración estimada (minutos)" } }, "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}" } } }