449 lines
21 KiB
JSON
449 lines
21 KiB
JSON
{
|
||
"config": {
|
||
"step": {
|
||
"user": {
|
||
"title": "Настройка WashData",
|
||
"description": "Настройте стиральную машину или другой прибор.\n\nТребуется датчик мощности.\n\n**Далее вас спросят, хотите ли вы создать свой первый профиль.**",
|
||
"data": {
|
||
"name": "Имя устройства",
|
||
"device_type": "Тип устройства",
|
||
"power_sensor": "Датчик мощности",
|
||
"min_power": "Минимальный порог мощности (Вт)"
|
||
},
|
||
"data_description": {
|
||
"name": "Понятное имя для этого устройства (например, «Стиральная машина», «Посудомоечная машина»).",
|
||
"device_type": "Что это за прибор? Помогает адаптировать обнаружение и маркировку.",
|
||
"power_sensor": "Датчик, который в реальном времени сообщает о потребляемой мощности (в ваттах) от вашей умной розетки.",
|
||
"min_power": "Показания мощности выше этого порога (в ваттах) указывают на то, что устройство работает. Начните с 2 Вт для большинства устройств."
|
||
}
|
||
},
|
||
"first_profile": {
|
||
"title": "Создать первый профиль",
|
||
"description": "**Цикл** - это полная работа вашего прибора (например, загрузка белья). **Профиль** группирует эти циклы по типу (например, «Хлопок», «Быстрая стирка»). Создание профиля сейчас помогает интеграции сразу оценить продолжительность.\n\nВы можете вручную выбрать этот профиль в элементах управления устройством, если он не обнаружен автоматически.\n\n**Оставьте поле «Имя профиля» пустым, чтобы пропустить этот шаг.**",
|
||
"data": {
|
||
"profile_name": "Имя профиля (необязательно)",
|
||
"manual_duration": "Предполагаемая продолжительность (минуты)"
|
||
}
|
||
},
|
||
"reconfigure": {
|
||
"title": "Reconfigure WashData",
|
||
"description": "Обновите имя устройства, тип устройства или датчик мощности.",
|
||
"data": {
|
||
"name": "Device Name",
|
||
"device_type": "Device Type",
|
||
"power_sensor": "Power Sensor",
|
||
"min_power": "Minimum Power Threshold (W)"
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"cannot_connect": "Не удалось подключиться",
|
||
"invalid_auth": "Неверная аутентификация",
|
||
"unknown": "Неожиданная ошибка",
|
||
"invalid_power": "Power threshold must be greater than 0"
|
||
},
|
||
"abort": {
|
||
"already_configured": "Устройство уже настроено",
|
||
"reconfigure_successful": "Reconfiguration was successful"
|
||
}
|
||
},
|
||
"options": {
|
||
"step": {
|
||
"init": {
|
||
"title": "WashData Settings",
|
||
"description": "Все настройки — обнаружение, сопоставление, время, уведомления, профили и циклы — доступны на панели WashData. Используйте эту форму только для изменения датчика мощности, типа устройства или порога режима ожидания.",
|
||
"data": {
|
||
"name": "Имя устройства",
|
||
"device_type": "Device Type",
|
||
"power_sensor": "Power Sensor",
|
||
"min_power": "Minimum Power Threshold (W)"
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"timer_default_message": "{device}: таймер {minutes} мин",
|
||
"timer_pause_action_title": "Возобновить цикл",
|
||
"timer_pause_body_suffix": "Цикл на паузе. Откройте панель WashData для возобновления.",
|
||
"notify_live_waiting_message": "{device}: Профиль пока не распознан.",
|
||
"vs_typical_longer": "на {pct}% дольше обычного",
|
||
"vs_typical_shorter": "на {pct}% короче обычного",
|
||
"invalid_power": "Power threshold must be greater than 0"
|
||
}
|
||
},
|
||
"selector": {
|
||
"device_type": {
|
||
"options": {
|
||
"washing_machine": "Стиральная машина",
|
||
"dryer": "Сушилка",
|
||
"washer_dryer": "Комбинированная стиральная машина с сушкой",
|
||
"dishwasher": "Посудомоечная машина",
|
||
"air_fryer": "Воздушная фритюрница",
|
||
"bread_maker": "Хлебопечка",
|
||
"pump": "Насос / Отстойный насос",
|
||
"generic": "Другое (продвинутый уровень)",
|
||
"other": "Пороговое устройство"
|
||
}
|
||
}
|
||
},
|
||
"services": {
|
||
"label_cycle": {
|
||
"name": "Отметить цикл",
|
||
"description": "Назначьте существующий профиль предыдущему циклу или удалите метку.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Устройство",
|
||
"description": "Устройство стиральной машины для маркировки."
|
||
},
|
||
"cycle_id": {
|
||
"name": "Идентификатор цикла",
|
||
"description": "Идентификатор цикла, который необходимо пометить."
|
||
},
|
||
"profile_name": {
|
||
"name": "Имя профиля",
|
||
"description": "Имя существующего профиля (создайте профили в меню «Управление профилями»). Оставьте пустым, чтобы удалить метку."
|
||
}
|
||
}
|
||
},
|
||
"create_profile": {
|
||
"name": "Создать профиль",
|
||
"description": "Создайте новый профиль (автономный или на основе эталонного цикла).",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Устройство",
|
||
"description": "Устройство стиральной машины."
|
||
},
|
||
"profile_name": {
|
||
"name": "Имя профиля",
|
||
"description": "Имя нового профиля (например, «Интенсивный», «Деликатное»)."
|
||
},
|
||
"reference_cycle_id": {
|
||
"name": "Идентификатор эталонного цикла",
|
||
"description": "Необязательный идентификатор цикла, на котором будет основан этот профиль."
|
||
}
|
||
}
|
||
},
|
||
"delete_profile": {
|
||
"name": "Удалить профиль",
|
||
"description": "Удалите профиль и, при необходимости, снимите маркировку с циклов, использующих его.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Устройство",
|
||
"description": "Устройство стиральной машины."
|
||
},
|
||
"profile_name": {
|
||
"name": "Имя профиля",
|
||
"description": "Профиль, который нужно удалить."
|
||
},
|
||
"unlabel_cycles": {
|
||
"name": "Снять маркировку с циклов",
|
||
"description": "Удалите метку профиля из циклов, использующих этот профиль."
|
||
}
|
||
}
|
||
},
|
||
"auto_label_cycles": {
|
||
"name": "Автоматическая маркировка старых циклов",
|
||
"description": "Маркируйте немаркированные циклы задним числом, используя сопоставление профилей.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Устройство",
|
||
"description": "Устройство стиральной машины."
|
||
},
|
||
"confidence_threshold": {
|
||
"name": "Порог уверенности",
|
||
"description": "Минимальная уверенность в совпадении (0,50–0,95) для применения меток."
|
||
}
|
||
}
|
||
},
|
||
"export_config": {
|
||
"name": "Экспортировать конфигурацию",
|
||
"description": "Экспортируйте профили, циклы и настройки этого устройства в файл JSON (для каждого устройства).",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Устройство",
|
||
"description": "Устройство стиральной машины для экспорта."
|
||
},
|
||
"path": {
|
||
"name": "Путь",
|
||
"description": "Необязательный абсолютный путь к файлу для записи (по умолчанию /config/ha_washdata_export_{entry}.json)."
|
||
}
|
||
}
|
||
},
|
||
"import_config": {
|
||
"name": "Импортировать конфигурацию",
|
||
"description": "Импортируйте профили, циклы и настройки для этого устройства из файла экспорта JSON (настройки могут быть перезаписаны).",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Устройство",
|
||
"description": "Устройство стиральной машины, в которое нужно импортировать."
|
||
},
|
||
"path": {
|
||
"name": "Путь",
|
||
"description": "Абсолютный путь к экспортному файлу JSON для импорта."
|
||
}
|
||
}
|
||
},
|
||
"submit_cycle_feedback": {
|
||
"name": "Отправить отзыв о цикле",
|
||
"description": "Подтвердите или исправьте автоматически определённую программу после завершения цикла. Укажите либо `entry_id` (дополнительно), либо `device_id` (рекомендуется).",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Устройство",
|
||
"description": "Устройство WashData (рекомендуется вместо entry_id)."
|
||
},
|
||
"entry_id": {
|
||
"name": "Идентификатор записи",
|
||
"description": "Идентификатор записи конфигурации для устройства (альтернатива device_id)."
|
||
},
|
||
"cycle_id": {
|
||
"name": "Идентификатор цикла",
|
||
"description": "Идентификатор цикла, отображаемый в уведомлении/журналах обратной связи."
|
||
},
|
||
"user_confirmed": {
|
||
"name": "Подтвердить обнаруженную программу",
|
||
"description": "Установите true, если обнаруженная программа верна."
|
||
},
|
||
"corrected_profile": {
|
||
"name": "Исправленный профиль",
|
||
"description": "Если не подтверждено, укажите правильное имя профиля/программы."
|
||
},
|
||
"corrected_duration": {
|
||
"name": "Исправленная продолжительность (секунды)",
|
||
"description": "Необязательная исправленная продолжительность в секундах."
|
||
},
|
||
"notes": {
|
||
"name": "Примечания",
|
||
"description": "Дополнительные примечания об этом цикле."
|
||
}
|
||
}
|
||
},
|
||
"record_start": {
|
||
"name": "Начать запись цикла",
|
||
"description": "Запустите вручную запись чистого цикла (обходит всю логику сопоставления).",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Устройство",
|
||
"description": "Устройство стиральной машины для записи."
|
||
}
|
||
}
|
||
},
|
||
"record_stop": {
|
||
"name": "Остановить запись цикла",
|
||
"description": "Остановите запись вручную.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Устройство",
|
||
"description": "Устройство стиральной машины для остановки записи."
|
||
}
|
||
}
|
||
},
|
||
"trim_cycle": {
|
||
"name": "Обрезать цикл",
|
||
"description": "Обрезать данные мощности прошлого цикла до определённого временного окна.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Устройство",
|
||
"description": "Устройство WashData."
|
||
},
|
||
"cycle_id": {
|
||
"name": "Идентификатор цикла",
|
||
"description": "Идентификатор цикла для обрезки."
|
||
},
|
||
"trim_start_s": {
|
||
"name": "Начало обрезки (секунды)",
|
||
"description": "Сохранять данные начиная с этого смещения в секундах. По умолчанию 0."
|
||
},
|
||
"trim_end_s": {
|
||
"name": "Конец обрезки (секунды)",
|
||
"description": "Сохранять данные до этого смещения в секундах. По умолчанию = полная продолжительность."
|
||
}
|
||
}
|
||
},
|
||
"pause_cycle": {
|
||
"name": "Пауза цикла",
|
||
"description": "Приостановите активный цикл устройства WashData.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Устройство",
|
||
"description": "Устройство WashData, которое необходимо приостановить."
|
||
}
|
||
}
|
||
},
|
||
"resume_cycle": {
|
||
"name": "Возобновить цикл",
|
||
"description": "Возобновите приостановленный цикл для устройства WashData.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Устройство",
|
||
"description": "Устройство WashData для возобновления работы."
|
||
}
|
||
}
|
||
},
|
||
"trigger_ml_training": {
|
||
"name": "Trigger ML Training",
|
||
"description": "Вручную переобучите модели машинного обучения на устройстве из собственных помеченных циклов этого устройства (экспериментально).",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Device",
|
||
"description": "The WashData device to retrain models for."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"entity": {
|
||
"binary_sensor": {
|
||
"running": {
|
||
"name": "В работе"
|
||
},
|
||
"match_ambiguity": {
|
||
"name": "Неоднозначность сопоставления"
|
||
}
|
||
},
|
||
"sensor": {
|
||
"washer_state": {
|
||
"name": "Состояние",
|
||
"state": {
|
||
"off": "Выключено",
|
||
"idle": "Ожидание",
|
||
"starting": "Запуск",
|
||
"running": "Работает",
|
||
"paused": "Пауза",
|
||
"user_paused": "Приостановлено пользователем",
|
||
"ending": "Завершение",
|
||
"finished": "Завершено",
|
||
"anti_wrinkle": "Защита от морщин",
|
||
"interrupted": "Прервано",
|
||
"force_stopped": "Принудительная остановка",
|
||
"rinse": "Полоскание",
|
||
"unknown": "Неизвестно",
|
||
"clean": "Чистый",
|
||
"delay_wait": "Ожидание начала"
|
||
}
|
||
},
|
||
"washer_program": {
|
||
"name": "Программа"
|
||
},
|
||
"time_remaining": {
|
||
"name": "Оставшееся время"
|
||
},
|
||
"total_duration": {
|
||
"name": "Общая продолжительность"
|
||
},
|
||
"cycle_progress": {
|
||
"name": "Прогресс"
|
||
},
|
||
"current_power": {
|
||
"name": "Текущая мощность"
|
||
},
|
||
"elapsed_time": {
|
||
"name": "Прошедшее время"
|
||
},
|
||
"debug_info": {
|
||
"name": "Отладочная информация"
|
||
},
|
||
"match_confidence": {
|
||
"name": "Уверенность в сопоставлении"
|
||
},
|
||
"top_candidates": {
|
||
"name": "Лучшие кандидаты",
|
||
"state": {
|
||
"none": "Нет"
|
||
}
|
||
},
|
||
"ambiguity": {
|
||
"name": "Показатель неоднозначности"
|
||
},
|
||
"current_phase": {
|
||
"name": "Текущая фаза"
|
||
},
|
||
"profile_cycle_count": {
|
||
"name": "Количество циклов профиля {profile_name}",
|
||
"unit_of_measurement": "циклов"
|
||
},
|
||
"suggestions": {
|
||
"name": "Доступные предложенные настройки"
|
||
},
|
||
"pump_runs_today": {
|
||
"name": "Работа насоса (последние 24 часа)"
|
||
},
|
||
"cycle_count": {
|
||
"name": "Количество циклов"
|
||
},
|
||
"energy_total": {
|
||
"name": "Суммарная энергия"
|
||
}
|
||
},
|
||
"select": {
|
||
"program_select": {
|
||
"name": "Программа цикла",
|
||
"state": {
|
||
"auto_detect": "Автоопределение"
|
||
}
|
||
}
|
||
},
|
||
"button": {
|
||
"force_end_cycle": {
|
||
"name": "Принудительное завершение цикла"
|
||
},
|
||
"pause_cycle": {
|
||
"name": "Пауза цикла"
|
||
},
|
||
"resume_cycle": {
|
||
"name": "Возобновить цикл"
|
||
},
|
||
"record_start": {
|
||
"name": "Начать запись цикла"
|
||
},
|
||
"record_stop": {
|
||
"name": "Остановить запись цикла"
|
||
}
|
||
}
|
||
},
|
||
"exceptions": {
|
||
"device_id_required": {
|
||
"message": "Требуется действительный идентификатор устройства."
|
||
},
|
||
"cycle_id_required": {
|
||
"message": "Требуется действительный cycle_id."
|
||
},
|
||
"profile_name_required": {
|
||
"message": "Требуется действительное имя_профиля."
|
||
},
|
||
"device_not_found": {
|
||
"message": "Устройство не найдено."
|
||
},
|
||
"no_config_entry": {
|
||
"message": "Для устройства не найдена запись конфигурации."
|
||
},
|
||
"integration_not_loaded": {
|
||
"message": "Интеграция не загружена для этого устройства."
|
||
},
|
||
"cycle_not_found_or_no_power": {
|
||
"message": "Цикл не найден или не имеет данных о мощности."
|
||
},
|
||
"trim_failed_empty_window": {
|
||
"message": "Не удалось выполнить обрезку - цикл не найден, данные о мощности отсутствуют или результирующее окно пусто."
|
||
},
|
||
"trim_invalid_range": {
|
||
"message": "trim_end_s должно быть больше, чем trim_start_s."
|
||
},
|
||
"no_active_cycle": {
|
||
"message": "Нет активного цикла для приостановки или возобновления."
|
||
},
|
||
"path_not_allowed": {
|
||
"message": "Путь не разрешён: {path}. Добавьте его каталог в 'allowlist_external_dirs' в configuration.yaml."
|
||
},
|
||
"create_profile_failed": {
|
||
"message": "Не удалось создать профиль: {error}"
|
||
},
|
||
"export_path_exists": {
|
||
"message": "Цель экспорта уже существует: {path}. Выберите другой путь или сначала удалите существующий файл."
|
||
},
|
||
"export_write_failed": {
|
||
"message": "Не удалось записать экспорт в {path}: {error}"
|
||
},
|
||
"assign_profile_failed": {
|
||
"message": "Не удалось назначить профиль: {error}"
|
||
}
|
||
}
|
||
}
|