{ "config": { "step": { "user": { "title": "Maintenance Supporter", "description": "유지보수 관리 시스템을 설정합니다.", "menu_options": { "create_object": "유지보수 대상 만들기", "create_from_template": "템플릿에서 만들기", "global_setup": "전역 설정" } }, "create_from_template": { "title": "템플릿 카테고리 선택", "description": "미리 정의된 유지보수 템플릿을 살펴볼 카테고리를 선택하세요.", "data": { "template_category": "카테고리", "go_back": "뒤로 가기" }, "data_description": { "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다." } }, "template_select": { "title": "템플릿 선택", "description": "시작점으로 사용할 유지보수 템플릿을 선택하세요.", "data": { "template_id": "템플릿", "go_back": "뒤로 가기" }, "data_description": { "go_back": "저장하지 않고 카테고리 선택으로 돌아갑니다." } }, "template_customize": { "title": "템플릿 사용자 지정", "description": "{template_name} 템플릿을 사용자 지정합니다. 이 템플릿에는 {task_count}개의 작업이 포함되어 있습니다: {task_list}.", "data": { "name": "대상 이름", "area_id": "구역", "manufacturer": "제조사", "model": "모델", "serial_number": "일련번호", "documentation_url": "설명서 / 문서 URL", "notes": "메모", "go_back": "뒤로 가기" }, "data_description": { "name": "이 유지보수 대상의 이름입니다.", "area_id": "이 대상이 위치한 구역입니다.", "manufacturer": "대상의 제조사입니다.", "model": "모델명 또는 모델 번호입니다.", "serial_number": "대상의 일련번호입니다.", "documentation_url": "PDF 설명서, 제조사 페이지 등 이 대상의 참고 정보가 있는 URL 링크입니다(선택 사항).", "notes": "대상에 대한 자유 형식 메모입니다 — 부품 번호, 절차, 설정 참고 사항 등.", "go_back": "저장하지 않고 템플릿 선택으로 돌아갑니다." } }, "global_setup": { "title": "전역 설정", "description": "전역 유지보수 설정을 구성합니다.", "data": { "default_warning_days": "기본 기한 전 경고 일수", "notifications_enabled": "알림 사용", "notify_service": "알림 서비스" }, "data_description": { "default_warning_days": "유지보수 작업의 기한 전에 경고를 표시할 일수입니다.", "notifications_enabled": "유지보수 작업의 기한이 되면 알림을 보냅니다.", "notify_service": "사용할 알림 서비스입니다(예: notify.mobile_app_phone)." } }, "create_object": { "title": "유지보수 대상 만들기", "description": "유지보수를 관리할 기기나 자산을 정의합니다.", "data": { "name": "대상 이름", "area_id": "구역", "manufacturer": "제조사", "model": "모델", "serial_number": "일련번호", "documentation_url": "설명서 / 문서 URL", "notes": "메모", "installation_date": "설치일", "warranty_expiry": "보증 만료일", "go_back": "뒤로 가기" }, "data_description": { "name": "이 유지보수 대상의 고유한 이름입니다(예: '수영장 펌프', '자동차').", "area_id": "이 대상이 위치한 집 안의 구역입니다.", "manufacturer": "대상의 제조사입니다.", "model": "모델명 또는 모델 번호입니다.", "serial_number": "대상의 일련번호입니다.", "documentation_url": "PDF 설명서, 제조사 페이지 등 이 대상의 참고 정보가 있는 URL 링크입니다(선택 사항).", "notes": "대상에 대한 자유 형식 메모입니다 — 부품 번호, 절차, 설정 참고 사항 등.", "installation_date": "이 대상을 설치했거나 구입한 날짜입니다.", "warranty_expiry": "이 대상의 제조사 보증이 만료되는 날짜입니다.", "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다." } }, "task_menu": { "title": "유지보수 작업", "description": "{object_name}의 유지보수 작업을 추가하세요. 현재 {task_count}개의 작업이 정의되어 있습니다.", "menu_options": { "add_task": "유지보수 작업 추가", "finish": "설정 완료" } }, "add_task": { "title": "유지보수 작업 추가", "description": "{object_name}의 유지보수 작업을 정의합니다.", "data": { "name": "작업 이름", "type": "유지보수 유형", "schedule_type": "일정 유형", "custom_icon": "작업 아이콘", "go_back": "뒤로 가기" }, "data_description": { "name": "이 작업을 설명하는 이름입니다(예: '필터 청소', '엔진 오일 교환').", "type": "유지보수 작업의 범주입니다.", "schedule_type": "이 작업의 일정을 정하는 방식입니다.", "custom_icon": "이 작업의 사용자 지정 아이콘입니다(선택 사항, 예: mdi:oil, mdi:filter-variant).", "go_back": "저장하지 않고 작업 메뉴로 돌아갑니다." } }, "time_based": { "title": "시간 기반 일정", "description": "이 유지보수 작업의 시간 주기를 구성합니다.", "data": { "interval_days": "주기", "interval_unit": "주기 단위", "last_performed": "마지막 수행일", "warning_days": "기한 전 경고 일수", "go_back": "뒤로 가기", "interval_anchor": "주기 기준점" }, "data_description": { "interval_days": "주기 단위와 함께 이 유지보수가 반복되는 빈도를 정합니다.", "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.", "last_performed": "이 유지보수를 마지막으로 수행한 시점입니다. 수행한 적이 없으면 비워 두세요.", "warning_days": "기한 전에 경고를 표시할 일수입니다.", "go_back": "저장하지 않고 작업 만들기로 돌아갑니다.", "interval_anchor": "완료 후 다음 기한을 계산하는 방식입니다. '계획일 기준'은 원래 기한에 고정하여 일정이 밀리는 것을 방지합니다." } }, "one_time": { "title": "일회성 작업", "description": "반복되지 않는 단일 유지보수 작업을 구성합니다. 완료되면 보관 처리됩니다.", "data": { "due_date": "기한", "warning_days": "기한 전 경고 일수", "go_back": "뒤로 가기" }, "data_description": { "due_date": "이 일회성 작업의 기한입니다.", "warning_days": "기한 전에 경고를 표시할 일수입니다.", "go_back": "저장하지 않고 작업 만들기로 돌아갑니다." } }, "calendar": { "title": "달력 일정", "description": "달력 기반 반복(요일, 매월 n번째 요일 또는 매월 특정 일)을 구성합니다.", "data": { "weekdays": "반복할 요일", "nth": "몇 번째", "weekday": "요일", "day": "일(날짜)", "warning_days": "기한 전 경고 일수", "go_back": "뒤로 가기", "last_day": "월의 마지막 날", "business": "영업일만", "offset": "오프셋(일)" }, "data_description": { "weekdays": "선택한 각 요일마다 작업이 반복됩니다.", "nth": "그 달의 몇 번째인지 지정합니다(예: 첫째 또는 마지막).", "weekday": "n번째 요일 규칙에 사용할 요일입니다(예: 토요일).", "day": "월의 일입니다(1-31; 해당 월의 길이에 맞게 조정됨).", "warning_days": "기한 전에 경고를 표시할 일수입니다.", "go_back": "저장하지 않고 작업 만들기로 돌아갑니다.", "last_day": "일 숫자를 무시하고 해당 월의 마지막 날을 기한으로 합니다.", "business": "주말 날짜를 직전 금요일로 앞당깁니다(예: 마지막 영업일).", "offset": "계산된 날짜를 ±N일만큼 이동합니다(예: -2 = 이틀 전)." } }, "sensor_select": { "title": "트리거 센서 선택", "description": "이 유지보수 작업에서 모니터링할 Home Assistant 엔티티를 선택하세요.", "data": { "trigger_entity": "모니터링할 엔티티", "go_back": "뒤로 가기" }, "data_description": { "trigger_entity": "이 유지보수 작업을 트리거할 센서 엔티티를 선택하세요.", "go_back": "저장하지 않고 작업 만들기로 돌아갑니다." } }, "sensor_attribute": { "title": "속성 선택", "description": "{entity_id}에서 모니터링할 값을 선택하세요. 현재 상태: {current_state} {unit}", "data": { "trigger_attribute": "모니터링할 값", "go_back": "뒤로 가기" }, "data_description": { "trigger_attribute": "모니터링할 엔티티 상태 또는 특정 속성을 선택하세요.", "go_back": "저장하지 않고 엔티티 선택으로 돌아갑니다." } }, "trigger_type": { "title": "트리거 유형", "description": "센서 값이 어떤 방식으로 유지보수를 트리거해야 하나요?", "data": { "trigger_type": "트리거 유형", "go_back": "뒤로 가기" }, "data_description": { "trigger_type": "임계값: 값이 한계를 넘으면 트리거됩니다. 카운터: 목표 값이 누적되면 트리거됩니다. 상태 변경: 일정 횟수의 상태 전환 후 트리거됩니다.", "go_back": "저장하지 않고 속성 선택으로 돌아갑니다." } }, "trigger_threshold": { "title": "임계값 구성", "description": "**{entity_id}** ({attribute})의 임계값을 설정하세요.\n현재: **{current_value} {unit}** | 평균: {average} | 범위: {minimum}–{maximum} ({data_period}일)\n권장 상한: {suggested_above} | 권장 하한: {suggested_below}", "data": { "trigger_above": "이 값 초과 시 트리거", "trigger_below": "이 값 미만 시 트리거", "trigger_for_minutes": "최소 지속 시간(분)", "interval_days": "안전 주기", "interval_unit": "주기 단위", "warning_days": "기한 전 경고 일수", "go_back": "뒤로 가기" }, "data_description": { "trigger_above": "값이 이 임계값을 초과하면 유지보수를 트리거합니다.", "trigger_below": "값이 이 임계값 아래로 떨어지면 유지보수를 트리거합니다.", "trigger_for_minutes": "트리거되기 전에 값이 이 시간(분) 동안 임계값을 넘어야 합니다.", "interval_days": "센서 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).", "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.", "warning_days": "기한 전에 경고를 표시할 일수입니다.", "go_back": "저장하지 않고 트리거 유형 선택으로 돌아갑니다." } }, "trigger_counter": { "title": "카운터 구성", "description": "{entity_id} ({attribute})의 카운터 목표를 설정하세요. 현재: {current_value} {unit}.", "data": { "trigger_target_value": "목표 값", "trigger_delta_mode": "델타 모드(절대값이 아닌 변화량 계산)", "interval_days": "안전 주기", "interval_unit": "주기 단위", "warning_days": "기한 전 경고 일수", "go_back": "뒤로 가기" }, "data_description": { "trigger_target_value": "이 누적 값에 도달하면 유지보수를 트리거합니다.", "trigger_delta_mode": "사용하면 절대값 대신 기준값과의 차이를 계산합니다.", "interval_days": "카운터 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).", "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.", "warning_days": "기한 전에 경고를 표시할 일수입니다.", "go_back": "저장하지 않고 트리거 유형 선택으로 돌아갑니다." } }, "trigger_state_change": { "title": "상태 변경 구성", "description": "{entity_id}의 상태 전환 횟수를 셉니다.", "data": { "trigger_from_state": "이전 상태(선택 사항)", "trigger_to_state": "이후 상태(선택 사항)", "trigger_target_changes": "트리거까지의 변경 횟수", "interval_days": "안전 주기", "interval_unit": "주기 단위", "warning_days": "기한 전 경고 일수", "go_back": "뒤로 가기" }, "data_description": { "trigger_from_state": "이 상태에서의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.", "trigger_to_state": "이 상태로의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.", "trigger_target_changes": "유지보수를 트리거하기까지 일치해야 하는 상태 변경 횟수입니다.", "interval_days": "상태 변경 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).", "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.", "warning_days": "기한 전에 경고를 표시할 일수입니다.", "go_back": "저장하지 않고 트리거 유형 선택으로 돌아갑니다." } }, "trigger_runtime": { "title": "가동 시간 구성", "description": "{entity_id}의 누적 가동 시간을 추적합니다. 총 켜짐 시간이 목표 시간에 도달하면 유지보수가 트리거됩니다.", "data": { "trigger_runtime_hours": "목표 가동 시간(시간)", "trigger_on_states": "활성 상태(쉼표로 구분)", "interval_days": "안전 주기", "interval_unit": "주기 단위", "warning_days": "기한 전 경고 일수", "go_back": "뒤로 가기" }, "data_description": { "trigger_runtime_hours": "누적 가동 시간이 이 시간에 도달하면 유지보수를 트리거합니다.", "trigger_on_states": "'활성'으로 간주할 센서 상태입니다. 비워 두면 기본값(on, 1, true)을 사용합니다. 예: in_use, running", "interval_days": "가동 시간 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).", "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.", "warning_days": "기한 전에 경고를 표시할 일수입니다.", "go_back": "저장하지 않고 트리거 유형 선택으로 돌아갑니다." } }, "compound_logic": { "title": "복합 트리거", "description": "여러 조건을 결합하는 방식을 선택하세요.", "data": { "compound_logic": "논리", "go_back": "뒤로 가기" }, "data_description": { "compound_logic": "AND = 모든 조건이 트리거되어야 합니다. OR = 어느 한 조건만 트리거되면 됩니다.", "go_back": "저장하지 않고 트리거 유형 선택으로 돌아갑니다." } }, "compound_condition_entity": { "title": "조건 #{condition_num} — 엔티티", "description": "이 조건에 사용할 엔티티를 선택하세요.", "data": { "trigger_entity": "엔티티", "go_back": "뒤로 가기" }, "data_description": { "trigger_entity": "이 조건에서 모니터링할 센서 엔티티입니다.", "go_back": "저장하지 않고 이전 단계로 돌아갑니다." } }, "compound_condition_type": { "title": "조건 #{condition_num} — 유형", "description": "이 조건이 센서를 어떻게 평가해야 하나요?", "data": { "trigger_type": "트리거 유형", "go_back": "뒤로 가기" }, "data_description": { "trigger_type": "이 조건이 트리거되는 시점을 판단하는 방식입니다.", "go_back": "저장하지 않고 엔티티 선택으로 돌아갑니다." } }, "compound_condition_threshold": { "title": "조건 — 임계값", "data": { "trigger_above": "초과 시 트리거", "trigger_below": "미만 시 트리거", "trigger_for_minutes": "지속 시간(분)", "go_back": "뒤로 가기" }, "data_description": { "trigger_above": "값이 이 임계값을 초과하면 트리거됩니다.", "trigger_below": "값이 이 임계값 아래로 떨어지면 트리거됩니다.", "trigger_for_minutes": "값이 이 시간 동안 임계값을 벗어난 상태를 유지해야 합니다.", "go_back": "저장하지 않고 조건 유형 선택으로 돌아갑니다." } }, "compound_condition_counter": { "title": "조건 — 카운터", "data": { "trigger_target_value": "목표 값", "trigger_delta_mode": "델타 모드", "go_back": "뒤로 가기" }, "data_description": { "trigger_target_value": "누적 값이 이 목표에 도달하면 트리거됩니다.", "trigger_delta_mode": "절대값 대신 기준값과의 변화량을 계산합니다.", "go_back": "저장하지 않고 조건 유형 선택으로 돌아갑니다." } }, "compound_condition_state_change": { "title": "조건 — 상태 변경", "data": { "trigger_from_state": "이전 상태", "trigger_to_state": "이후 상태", "trigger_target_changes": "변경 횟수", "go_back": "뒤로 가기" }, "data_description": { "trigger_from_state": "이 상태에서의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.", "trigger_to_state": "이 상태로의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.", "trigger_target_changes": "트리거되기까지 일치해야 하는 상태 변경 횟수입니다.", "go_back": "저장하지 않고 조건 유형 선택으로 돌아갑니다." } }, "compound_condition_runtime": { "title": "조건 — 가동 시간", "data": { "trigger_runtime_hours": "목표 가동 시간(시간)", "trigger_on_states": "활성 상태", "go_back": "뒤로 가기" }, "data_description": { "trigger_runtime_hours": "누적 가동 시간이 이 시간에 도달하면 트리거됩니다.", "trigger_on_states": "'활성'으로 간주할 센서 상태입니다. 비워 두면 기본값을 사용합니다.", "go_back": "저장하지 않고 조건 유형 선택으로 돌아갑니다." } }, "compound_review": { "title": "복합 트리거 검토", "description": "{compound_logic} 논리로 {condition_count}개의 조건이 구성되었습니다.", "data": { "compound_action": "동작", "go_back": "뒤로 가기" }, "data_description": { "go_back": "저장하지 않고 논리 선택으로 돌아갑니다." } }, "manual": { "title": "수동 일정", "description": "이 작업에는 자동 일정이 없습니다. 필요할 때 수동으로 기한 도래 상태로 표시할 수 있습니다.", "data": { "warning_days": "기한 전 경고 일수", "notes": "메모", "go_back": "뒤로 가기" }, "data_description": { "warning_days": "기한 전에 경고를 표시할 일수입니다.", "notes": "이 작업에 대한 추가 메모나 지침입니다.", "go_back": "저장하지 않고 작업 만들기로 돌아갑니다." } }, "reconfigure": { "title": "{name} 재구성", "description": "이 유지보수 대상의 설정을 업데이트합니다.", "data": { "name": "대상 이름", "area_id": "구역", "manufacturer": "제조사", "model": "모델", "serial_number": "일련번호", "documentation_url": "설명서 / 문서 URL", "notes": "메모", "installation_date": "설치일", "warranty_expiry": "보증 만료일" }, "data_description": { "name": "이 유지보수 대상의 이름입니다.", "area_id": "이 대상이 위치한 구역입니다.", "manufacturer": "이 대상의 제조사입니다.", "model": "이 대상의 모델입니다.", "serial_number": "이 대상의 일련번호입니다.", "documentation_url": "PDF 설명서, 제조사 페이지 등 이 대상의 참고 정보가 있는 URL 링크입니다(선택 사항).", "notes": "대상에 대한 자유 형식 메모입니다 — 부품 번호, 절차, 설정 참고 사항 등.", "installation_date": "이 대상을 설치한 날짜입니다.", "warranty_expiry": "이 대상의 제조사 보증이 만료되는 날짜입니다." } } }, "error": { "name_exists": "같은 이름의 유지보수 대상이 이미 있습니다.", "no_tasks": "최소 한 개의 유지보수 작업이 필요합니다.", "invalid_entity": "선택한 엔티티가 존재하지 않거나 숫자 데이터가 없습니다.", "invalid_attribute": "선택한 속성은 이 엔티티에서 사용할 수 없습니다.", "invalid_threshold": "최소 하나의 임계값(초과 또는 미만)을 설정해야 합니다.", "invalid_due_date": "일회성 작업에는 기한이 필요합니다.", "invalid_interval": "주기는 양수여야 합니다.", "min_exceeds_max": "최소 주기는 최대 주기를 초과할 수 없습니다.", "invalid_notify_service": "알림 서비스 형식이 잘못되었습니다. 'notify.service_name' 형식을 사용하세요(예: notify.mobile_app_phone).", "notify_service_not_found": "이 알림 서비스를 Home Assistant에서 찾을 수 없습니다. 서비스 이름을 확인해 주세요.", "nfc_tag_duplicate": "이 NFC 태그는 이미 다른 작업에 연결되어 있습니다." }, "abort": { "already_configured": "이 유지보수 대상은 이미 구성되어 있습니다.", "global_already_exists": "전역 설정이 이미 구성되어 있습니다.", "template_not_found": "선택한 템플릿을 찾을 수 없습니다.", "missing_data": "필수 데이터가 제공되지 않았습니다.", "reconfigure_successful": "구성이 성공적으로 업데이트되었습니다.", "reconfigure_cancelled": "재구성이 취소되었습니다." } }, "options": { "step": { "init": { "title": "유지보수 옵션", "description": "{object_info}", "menu_options": { "manage_tasks": "작업 관리", "add_task": "새 작업 추가", "object_settings": "대상 설정", "done": "완료" } }, "global_init": { "title": "전역 설정", "description": "전역 유지보수 설정을 구성합니다.", "menu_options": { "general_settings": "일반 설정", "advanced_features": "고급 기능", "panel_access": "패널 접근 권한", "budget_settings": "예산 설정", "manage_groups": "그룹 관리", "notification_settings": "알림 설정", "notification_actions": "대화형 동작", "test_notification": "테스트 알림 보내기", "done": "완료" } }, "advanced_features": { "title": "고급 기능", "description": "UI에 표시할 고급 기능을 선택하세요. 기능을 끄면 인터페이스에서 숨겨질 뿐 데이터가 삭제되지는 않습니다.", "data": { "advanced_adaptive_visible": "적응형 일정", "advanced_predictions_visible": "센서 예측", "advanced_seasonal_visible": "계절 조정", "advanced_environmental_visible": "환경 상관관계", "advanced_budget_visible": "예산 추적", "advanced_groups_visible": "그룹", "advanced_checklists_visible": "체크리스트", "advanced_schedule_time_visible": "시간대 지정 일정" }, "data_description": { "advanced_adaptive_visible": "작업에 대한 EWA, Weibull 분석 및 주기 제안을 표시합니다.", "advanced_predictions_visible": "센서 열화 분석과 임계값 예측 차트를 표시합니다.", "advanced_seasonal_visible": "계절 계수 차트와 월별 조정 데이터를 표시합니다.", "advanced_environmental_visible": "환경(온도, 습도) 상관관계 조정을 표시합니다.", "advanced_budget_visible": "월별/연간 예산 추적과 경보를 표시합니다.", "advanced_groups_visible": "유지보수 그룹 관리를 표시합니다.", "advanced_checklists_visible": "단계별 완료를 위한 작업 체크리스트를 표시합니다.", "advanced_schedule_time_visible": "작업이 자정이 아닌 특정 시각에 기한 초과가 되도록 허용합니다." } }, "panel_access": { "title": "패널 접근 권한", "description": "관리자는 항상 전체 접근 권한을 가집니다. 특정 비관리자에게 생성, 편집, 삭제를 위임하려면 아래 옵션을 켜고 해당 사용자를 선택하세요 — 나머지 사용자에게는 완료와 건너뛰기만 표시됩니다. {user_count}명의 비관리자 사용자를 찾았습니다.", "data": { "operator_write_enabled": "선택한 사용자에게 생성, 편집, 삭제 허용", "admin_panel_user_ids": "전체 패널 접근 권한이 있는 사용자" }, "data_description": { "operator_write_enabled": "꺼짐(기본값): 관리자만 콘텐츠를 수정할 수 있습니다. 켜짐: 아래에서 선택한 사용자도 전체 생성/편집/삭제 권한을 갖습니다.", "admin_panel_user_ids": "목록에 있는 사용자는 전체 패널을 볼 수 있고, 나머지 사용자에게는 각 작업의 완료와 건너뛰기만 표시됩니다." } }, "general_settings": { "title": "일반 설정", "description": "Maintenance Supporter의 기본 설정을 구성합니다.", "data": { "default_warning_days": "기본 기한 전 경고 일수", "notifications_enabled": "알림 사용", "notify_service": "알림 서비스", "panel_enabled": "사이드바 패널 표시", "panel_title": "사이드바 패널 제목" }, "data_description": { "default_warning_days": "유지보수 작업의 기한 전에 경고를 표시할 일수입니다.", "notifications_enabled": "유지보수 작업의 기한이 되거나 기한을 초과하면 알림을 보냅니다.", "notify_service": "사용할 알림 서비스입니다(예: notify.mobile_app_phone).", "panel_enabled": "사이드바에 Maintenance Supporter 패널을 표시합니다.", "panel_title": "사이드바 항목의 사용자 지정 이름입니다. 비워 두면 \"유지보수\"를 사용합니다. Home Assistant 기본 유지보수 대시보드와 이름이 겹치지 않게 할 때 유용합니다." } }, "notification_settings": { "title": "알림 설정", "description": "각 상태별로 알림을 언제, 얼마나 자주 보낼지 구성합니다.", "data": { "notify_due_soon_enabled": "기한 임박 시 알림", "notify_due_soon_interval_hours": "기한 임박 알림 반복 간격(시간)", "notify_overdue_enabled": "기한 초과 시 알림", "notify_overdue_interval_hours": "기한 초과 알림 반복 간격(시간)", "notify_triggered_enabled": "트리거 시 알림", "notify_triggered_interval_hours": "트리거 알림 반복 간격(시간)", "quiet_hours_enabled": "방해 금지 시간 사용", "quiet_hours_start": "방해 금지 시작", "quiet_hours_end": "방해 금지 종료", "max_notifications_per_day": "하루 최대 알림 수", "notification_bundling_enabled": "알림 묶어 보내기", "notification_bundle_threshold": "묶음 기준 수", "notification_title_style": "알림 제목 스타일" }, "data_description": { "notify_due_soon_interval_hours": "기한 임박 알림을 반복하는 간격입니다. 0으로 설정하면 한 번만 알립니다.", "notify_overdue_interval_hours": "기한 초과 알림을 반복하는 간격입니다. 0으로 설정하면 한 번만 알립니다.", "notify_triggered_interval_hours": "트리거 알림을 반복하는 간격입니다. 0으로 설정하면 한 번만 알립니다.", "quiet_hours_enabled": "방해 금지 시간 동안 알림을 보내지 않습니다.", "max_notifications_per_day": "하루에 보낼 최대 알림 수입니다. 0으로 설정하면 무제한입니다.", "notification_bundling_enabled": "여러 작업이 주의가 필요할 때 하나의 요약 알림으로 보냅니다.", "notification_bundle_threshold": "묶음 알림을 보내기 위한 최소 작업 수입니다.", "notification_title_style": "알림의 제목으로 표시할 내용입니다. 기본값은 상태별 문구(예: '유지보수 기한 초과!')를 유지합니다. 휴대폰에 알림이 쌓일 때는 대상 이름/작업 이름이 도움이 됩니다." } }, "notification_actions": { "title": "대화형 동작", "description": "모바일 알림에 표시되는 동작 버튼을 구성합니다(Companion 앱 필요).", "data": { "action_complete_enabled": "'완료' 버튼 표시", "action_skip_enabled": "'건너뛰기' 버튼 표시", "action_snooze_enabled": "'다시 알림' 버튼 표시", "snooze_duration_hours": "다시 알림 시간(시간)" }, "data_description": { "action_complete_enabled": "알림에서 바로 작업을 완료로 표시하는 버튼을 추가합니다.", "action_skip_enabled": "알림에서 현재 유지보수 주기를 건너뛰는 버튼을 추가합니다.", "action_snooze_enabled": "알림을 뒤로 미루는 버튼을 추가합니다.", "snooze_duration_hours": "다시 알림을 누르면 알림을 미루는 시간입니다." } }, "budget_settings": { "title": "예산 설정", "description": "지출을 추적할 월별 및 연간 유지보수 예산을 설정하세요.", "data": { "budget_currency": "통화", "budget_monthly": "월 예산", "budget_yearly": "연 예산", "budget_alerts_enabled": "예산 경보 사용", "budget_alert_threshold": "경보 기준(%)" }, "data_description": { "budget_currency": "예산 표시와 알림에 사용할 통화입니다.", "budget_monthly": "월별 최대 유지보수 지출입니다. 0으로 설정하면 사용하지 않습니다.", "budget_yearly": "연간 최대 유지보수 지출입니다. 0으로 설정하면 사용하지 않습니다.", "budget_alerts_enabled": "지출이 경보 기준을 넘으면 알림을 보냅니다.", "budget_alert_threshold": "경보를 보낼 예산 대비 비율(%)입니다." } }, "test_notification": { "title": "테스트 알림", "description": "{result}" }, "manage_groups": { "title": "그룹 관리", "description": "관리할 그룹을 선택하거나 새로 만드세요.", "data": { "selected_group": "그룹 선택" } }, "add_group": { "title": "그룹 추가", "description": "관련 작업을 정리할 새 유지보수 그룹을 만듭니다.", "data": { "group_name": "그룹 이름", "group_description": "설명" }, "data_description": { "group_name": "이 그룹의 이름입니다(예: '봄철 유지보수').", "group_description": "이 그룹에 대한 설명입니다(선택 사항)." } }, "manage_tasks": { "title": "작업 관리", "description": "편집하거나 제거할 작업을 선택하세요.", "data": { "selected_task": "작업 선택", "go_back": "뒤로 가기" } }, "task_action": { "title": "작업 동작", "description": "작업: {task_name} — 동작을 선택하세요.\n\n다음 기한: {next_dates}", "menu_options": { "edit_task": "작업 편집", "edit_trigger": "트리거 편집", "remove_trigger": "트리거 제거", "edit_checklist": "체크리스트 편집", "adaptive_scheduling": "적응형 일정", "delete_task": "작업 삭제", "manage_tasks": "뒤로" } }, "edit_task": { "title": "작업 편집", "description": "**{task_name}**의 설정을 편집합니다.", "data": { "name": "작업 이름", "type": "유지보수 유형", "interval_days": "주기", "interval_unit": "주기 단위", "warning_days": "기한 전 경고 일수", "due_date": "기한", "enabled": "사용", "notes": "메모", "documentation_url": "문서 URL", "last_performed": "마지막 수행일", "responsible_user_id": "담당 사용자", "custom_icon": "작업 아이콘", "nfc_tag_id": "NFC 태그 ID", "go_back": "뒤로 가기", "interval_anchor": "주기 기준점", "reading_unit": "측정 단위(측정형 작업용, 예: kWh)", "season_months": "계절 기간(월)", "ends_count": "종료 횟수(반복 횟수)", "ends_until": "종료 날짜" }, "data_description": { "name": "이 작업을 설명하는 이름입니다(예: '필터 청소', '엔진 오일 교환').", "type": "유지보수 작업의 범주입니다.", "interval_days": "주기 단위와 함께 이 유지보수가 반복되는 빈도를 정합니다.", "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.", "warning_days": "기한 전에 경고를 표시할 일수입니다.", "due_date": "이 일회성 작업의 기한입니다.", "enabled": "끄면 일정과 트리거가 일시 중지됩니다. 작업이 삭제되지는 않습니다.", "notes": "이 작업에 대한 추가 메모나 지침입니다.", "documentation_url": "이 작업의 외부 문서나 설명서 링크입니다.", "last_performed": "이 유지보수를 마지막으로 수행한 시점입니다. 수행한 적이 없으면 비워 두세요.", "responsible_user_id": "이 작업을 담당하는 Home Assistant 사용자입니다.", "custom_icon": "이 작업의 사용자 지정 아이콘입니다(선택 사항, 예: mdi:oil, mdi:filter-variant).", "nfc_tag_id": "이 작업에 NFC 태그를 연결합니다. 태그를 스캔하면 작업이 자동으로 완료 처리됩니다.", "go_back": "저장하지 않고 작업 동작으로 돌아갑니다.", "interval_anchor": "완료 후 다음 기한을 계산하는 방식입니다. '계획일 기준'은 원래 기한에 고정하여 일정이 밀리는 것을 방지합니다.", "season_months": "선택한 월에만 기한이 됩니다. 비활성 기간의 날짜는 다음 활성 월로 이월됩니다. 비워 두면 연중 내내 적용됩니다.", "ends_count": "이 횟수만큼 완료한 후 반복을 멈춥니다(유한 반복). 비워 두면 제한이 없습니다.", "ends_until": "다음 반복이 이 날짜 이후가 되면 반복을 멈춥니다. '종료 횟수'가 설정되어 있으면 무시됩니다." } }, "edit_checklist": { "title": "체크리스트 편집", "description": "{task_name}의 체크리스트 단계를 정의하세요. 한 줄에 하나씩 입력하세요.", "data": { "checklist_text": "체크리스트 단계", "go_back": "뒤로 가기" }, "data_description": { "checklist_text": "각 체크리스트 단계를 한 줄에 하나씩 입력하세요. 작업을 완료할 때 이 단계들이 표시됩니다.", "go_back": "저장하지 않고 작업 동작으로 돌아갑니다." } }, "compound_logic": { "title": "복합 트리거", "description": "여러 조건을 결합하는 방식을 선택하세요.", "data": { "compound_logic": "논리", "go_back": "뒤로 가기" }, "data_description": { "compound_logic": "AND = 모든 조건이 트리거되어야 합니다. OR = 어느 한 조건만 트리거되면 됩니다." } }, "compound_condition_entity": { "title": "조건 #{condition_num} — 엔티티", "description": "이 조건에 사용할 엔티티를 선택하세요.", "data": { "trigger_entity": "엔티티", "go_back": "뒤로 가기" }, "data_description": { "trigger_entity": "이 조건에서 모니터링할 센서 엔티티입니다." } }, "compound_condition_type": { "title": "조건 #{condition_num} — 유형", "description": "이 조건이 센서를 어떻게 평가해야 하나요?", "data": { "trigger_type": "트리거 유형", "go_back": "뒤로 가기" }, "data_description": { "trigger_type": "이 조건이 트리거되는 시점을 판단하는 방식입니다." } }, "compound_condition_threshold": { "title": "조건 — 임계값", "data": { "trigger_above": "초과 시 트리거", "trigger_below": "미만 시 트리거", "trigger_for_minutes": "지속 시간(분)", "go_back": "뒤로 가기" }, "data_description": { "trigger_above": "값이 이 임계값을 초과하면 트리거됩니다.", "trigger_below": "값이 이 임계값 아래로 떨어지면 트리거됩니다.", "trigger_for_minutes": "값이 이 시간 동안 임계값을 벗어난 상태를 유지해야 합니다." } }, "compound_condition_counter": { "title": "조건 — 카운터", "data": { "trigger_target_value": "목표 값", "trigger_delta_mode": "델타 모드", "go_back": "뒤로 가기" }, "data_description": { "trigger_target_value": "누적 값이 이 목표에 도달하면 트리거됩니다.", "trigger_delta_mode": "절대값 대신 기준값과의 변화량을 계산합니다." } }, "compound_condition_state_change": { "title": "조건 — 상태 변경", "data": { "trigger_from_state": "이전 상태", "trigger_to_state": "이후 상태", "trigger_target_changes": "변경 횟수", "go_back": "뒤로 가기" }, "data_description": { "trigger_from_state": "이 상태에서의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.", "trigger_to_state": "이 상태로의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.", "trigger_target_changes": "트리거되기까지 일치해야 하는 상태 변경 횟수입니다." } }, "compound_condition_runtime": { "title": "조건 — 가동 시간", "data": { "trigger_runtime_hours": "목표 가동 시간(시간)", "trigger_on_states": "활성 상태", "go_back": "뒤로 가기" }, "data_description": { "trigger_runtime_hours": "누적 가동 시간이 이 시간에 도달하면 트리거됩니다.", "trigger_on_states": "'활성'으로 간주할 센서 상태입니다. 비워 두면 기본값을 사용합니다." } }, "compound_review": { "title": "복합 트리거 검토", "description": "{compound_logic} 논리로 {condition_count}개의 조건이 구성되었습니다.", "data": { "compound_action": "동작", "go_back": "뒤로 가기" } }, "adaptive_scheduling": { "title": "적응형 일정", "description": "{task_name}의 스마트 주기 적응을 구성합니다. 시스템이 완료 피드백을 학습하여 더 나은 주기를 제안합니다.", "data": { "adaptive_enabled": "적응형 일정 사용", "ewa_alpha": "학습률(alpha)", "min_interval_days": "최소 주기(일)", "max_interval_days": "최대 주기(일)", "seasonal_enabled": "계절 인식 사용", "sensor_prediction_enabled": "센서 기반 예측 사용", "environmental_entity": "환경 센서(선택 사항)", "go_back": "뒤로 가기" }, "data_description": { "adaptive_enabled": "사용하면 시스템이 피드백을 학습하여 최적의 유지보수 주기를 제안합니다.", "ewa_alpha": "알고리즘이 새 데이터에 적응하는 속도입니다. 높을수록 민감하고, 낮을수록 안정적입니다.", "min_interval_days": "시스템이 제안할 수 있는 가장 짧은 주기입니다.", "max_interval_days": "시스템이 제안할 수 있는 가장 긴 주기입니다.", "seasonal_enabled": "유지보수 이력에서 학습한 계절 패턴에 따라 제안을 조정합니다.", "sensor_prediction_enabled": "센서 추세를 분석하여 임계값 도달 시점을 예측하고 필요하면 더 이른 유지보수를 제안합니다.", "environmental_entity": "온도, 습도 또는 압력 센서를 연결하여 환경 조건과 유지보수 주기의 상관관계를 분석합니다.", "go_back": "저장하지 않고 작업 동작으로 돌아갑니다." } }, "delete_task": { "title": "작업 삭제", "description": "작업 {task_name}을(를) 삭제하시겠습니까? 이 동작은 되돌릴 수 없습니다.", "data": { "confirm": "삭제 확인", "go_back": "뒤로 가기" } }, "remove_trigger": { "title": "트리거 제거", "description": "**{task_name}**에서 트리거를 제거할까요?\n\n**엔티티:** {entity_ids}\n**유형:** {trigger_type}\n**구성:** {config_details}\n\n모든 엔티티가 제거되면 일정이 시간 기반으로 되돌아갑니다.", "data": { "entities_to_remove": "제거할 엔티티", "confirm": "제거 확인", "go_back": "뒤로 가기" }, "data_description": { "entities_to_remove": "이 트리거에서 제거할 엔티티를 선택하세요. 모두 제거하면 트리거 전체가 삭제됩니다.", "go_back": "저장하지 않고 작업 동작으로 돌아갑니다." } }, "trigger_summary": { "title": "현재 트리거", "description": "**{task_name}**의 트리거:\n\n**엔티티:** {entity_ids}\n**현재 상태:** {current_states}\n**유형:** {trigger_type} (속성: {attribute})\n**구성:** {config_details}", "menu_options": { "edit_trigger_proceed": "트리거 편집", "task_action": "뒤로" } }, "add_task": { "title": "유지보수 작업 추가", "description": "이 대상의 새 유지보수 작업을 정의합니다.", "data": { "name": "작업 이름", "type": "유지보수 유형", "schedule_type": "일정 유형", "custom_icon": "작업 아이콘", "go_back": "뒤로 가기", "reading_unit": "측정 단위(측정형 작업용, 예: kWh)" }, "data_description": { "name": "이 작업을 설명하는 이름입니다(예: '필터 청소', '엔진 오일 교환').", "type": "유지보수 작업의 범주입니다.", "schedule_type": "이 작업의 일정을 정하는 방식입니다.", "custom_icon": "이 작업의 사용자 지정 아이콘입니다(선택 사항, 예: mdi:oil, mdi:filter-variant).", "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다." } }, "opt_time_based": { "title": "시간 기반 일정", "description": "이 작업의 시간 주기를 구성합니다.", "data": { "interval_days": "주기", "interval_unit": "주기 단위", "last_performed": "마지막 수행일", "warning_days": "기한 전 경고 일수", "go_back": "뒤로 가기", "interval_anchor": "주기 기준점" }, "data_description": { "interval_days": "주기 단위와 함께 이 유지보수가 반복되는 빈도를 정합니다.", "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.", "last_performed": "이 유지보수를 마지막으로 수행한 시점입니다. 수행한 적이 없으면 비워 두세요.", "warning_days": "기한 전에 경고를 표시할 일수입니다.", "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다.", "interval_anchor": "완료 후 다음 기한을 계산하는 방식입니다. '계획일 기준'은 원래 기한에 고정하여 일정이 밀리는 것을 방지합니다." } }, "opt_one_time": { "title": "일회성 작업", "description": "반복되지 않는 단일 유지보수 작업을 구성합니다. 완료되면 보관 처리됩니다.", "data": { "due_date": "기한", "warning_days": "기한 전 경고 일수", "go_back": "뒤로 가기" }, "data_description": { "due_date": "이 일회성 작업의 기한입니다.", "warning_days": "기한 전에 경고를 표시할 일수입니다.", "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다." } }, "opt_calendar": { "title": "달력 일정", "description": "달력 기반 반복(요일, 매월 n번째 요일 또는 매월 특정 일)을 구성합니다.", "data": { "weekdays": "반복할 요일", "nth": "몇 번째", "weekday": "요일", "day": "일(날짜)", "last_performed": "마지막 수행일", "warning_days": "기한 전 경고 일수", "go_back": "뒤로 가기", "last_day": "월의 마지막 날", "business": "영업일만", "offset": "오프셋(일)" }, "data_description": { "weekdays": "선택한 각 요일마다 작업이 반복됩니다.", "nth": "그 달의 몇 번째인지 지정합니다(예: 첫째 또는 마지막).", "weekday": "n번째 요일 규칙에 사용할 요일입니다(예: 토요일).", "day": "월의 일입니다(1-31; 해당 월의 길이에 맞게 조정됨).", "last_performed": "이 유지보수를 마지막으로 수행한 시점입니다. 수행한 적이 없으면 비워 두세요.", "warning_days": "기한 전에 경고를 표시할 일수입니다.", "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다.", "last_day": "일 숫자를 무시하고 해당 월의 마지막 날을 기한으로 합니다.", "business": "주말 날짜를 직전 금요일로 앞당깁니다(예: 마지막 영업일).", "offset": "계산된 날짜를 ±N일만큼 이동합니다(예: -2 = 이틀 전)." } }, "opt_manual": { "title": "수동 일정", "description": "이 작업에는 자동 일정이 없습니다. 필요할 때 수동으로 기한 도래 상태로 표시할 수 있습니다.", "data": { "warning_days": "기한 전 경고 일수", "notes": "메모", "go_back": "뒤로 가기" }, "data_description": { "warning_days": "기한 전에 경고를 표시할 일수입니다.", "notes": "이 작업에 대한 추가 메모나 지침입니다.", "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다." } }, "opt_sensor_select": { "title": "트리거 센서 선택", "description": "모니터링할 Home Assistant 엔티티를 선택하세요.", "data": { "trigger_entity": "모니터링할 엔티티", "go_back": "뒤로 가기" }, "data_description": { "trigger_entity": "이 유지보수 작업을 트리거할 센서 엔티티를 선택하세요." } }, "opt_sensor_attribute": { "title": "속성 선택", "description": "{entity_id}에서 모니터링할 값을 선택하세요. 현재 상태: {current_state} {unit}", "data": { "trigger_attribute": "모니터링할 값", "go_back": "뒤로 가기" }, "data_description": { "trigger_attribute": "모니터링할 엔티티 상태 또는 특정 속성을 선택하세요." } }, "opt_trigger_type": { "title": "트리거 유형", "description": "센서 값이 어떤 방식으로 유지보수를 트리거해야 하나요?", "data": { "trigger_type": "트리거 유형", "go_back": "뒤로 가기" }, "data_description": { "trigger_type": "임계값: 값이 한계를 넘으면 트리거됩니다. 카운터: 목표 값이 누적되면 트리거됩니다. 상태 변경: 일정 횟수의 상태 전환 후 트리거됩니다." } }, "opt_trigger_threshold": { "title": "임계값 구성", "description": "**{entity_id}** ({attribute})의 임계값을 설정하세요.\n현재: **{current_value} {unit}** | 평균: {average} | 범위: {minimum}–{maximum} ({data_period}일)\n권장 상한: {suggested_above} | 권장 하한: {suggested_below}", "data": { "trigger_above": "이 값 초과 시 트리거", "trigger_below": "이 값 미만 시 트리거", "trigger_for_minutes": "최소 지속 시간(분)", "interval_days": "안전 주기", "interval_unit": "주기 단위", "warning_days": "기한 전 경고 일수", "go_back": "뒤로 가기" }, "data_description": { "trigger_above": "값이 이 임계값을 초과하면 유지보수를 트리거합니다.", "trigger_below": "값이 이 임계값 아래로 떨어지면 유지보수를 트리거합니다.", "trigger_for_minutes": "트리거되기 전에 값이 이 시간(분) 동안 임계값을 넘어야 합니다.", "interval_days": "센서 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).", "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.", "warning_days": "기한 전에 경고를 표시할 일수입니다." } }, "opt_trigger_counter": { "title": "카운터 구성", "description": "{entity_id} ({attribute})의 카운터 목표를 설정하세요. 현재: {current_value} {unit}.", "data": { "trigger_target_value": "목표 값", "trigger_delta_mode": "델타 모드(절대값이 아닌 변화량 계산)", "interval_days": "안전 주기", "interval_unit": "주기 단위", "warning_days": "기한 전 경고 일수", "go_back": "뒤로 가기" }, "data_description": { "trigger_target_value": "이 누적 값에 도달하면 유지보수를 트리거합니다.", "trigger_delta_mode": "사용하면 절대값 대신 기준값과의 차이를 계산합니다.", "interval_days": "카운터 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).", "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.", "warning_days": "기한 전에 경고를 표시할 일수입니다." } }, "opt_trigger_state_change": { "title": "상태 변경 구성", "description": "{entity_id}의 상태 전환 횟수를 셉니다.", "data": { "trigger_from_state": "이전 상태(선택 사항)", "trigger_to_state": "이후 상태(선택 사항)", "trigger_target_changes": "트리거까지의 변경 횟수", "interval_days": "안전 주기", "interval_unit": "주기 단위", "warning_days": "기한 전 경고 일수", "go_back": "뒤로 가기" }, "data_description": { "trigger_from_state": "이 상태에서의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.", "trigger_to_state": "이 상태로의 전환만 셉니다. 비워 두면 모든 상태가 포함됩니다.", "trigger_target_changes": "유지보수를 트리거하기까지 일치해야 하는 상태 변경 횟수입니다.", "interval_days": "상태 변경 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).", "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.", "warning_days": "기한 전에 경고를 표시할 일수입니다." } }, "opt_trigger_runtime": { "title": "가동 시간 구성", "description": "{entity_id}의 누적 가동 시간을 추적합니다.", "data": { "trigger_runtime_hours": "목표 가동 시간(시간)", "trigger_on_states": "활성 상태(쉼표로 구분)", "interval_days": "안전 주기", "interval_unit": "주기 단위", "warning_days": "기한 전 경고 일수", "go_back": "뒤로 가기" }, "data_description": { "trigger_runtime_hours": "누적 가동 시간이 이 시간에 도달하면 유지보수를 트리거합니다.", "trigger_on_states": "'활성'으로 간주할 센서 상태입니다. 비워 두면 기본값(on, 1, true)을 사용합니다. 예: in_use, running", "interval_days": "가동 시간 트리거에 더해 사용하는 시간 기반 안전 주기입니다(선택 사항).", "interval_unit": "주기의 단위: 일, 주, 개월 또는 년. 개월과 년은 달력을 따릅니다.", "warning_days": "기한 전에 경고를 표시할 일수입니다." } }, "object_settings": { "title": "대상 설정", "description": "대상 정보를 편집합니다.", "data": { "name": "대상 이름", "manufacturer": "제조사", "model": "모델", "serial_number": "일련번호", "documentation_url": "설명서 / 문서 URL", "notes": "메모", "area_id": "구역", "installation_date": "설치일", "warranty_expiry": "보증 만료일", "go_back": "뒤로 가기" }, "data_description": { "name": "이 유지보수 대상의 고유한 이름입니다(예: '수영장 펌프', '자동차').", "manufacturer": "대상의 제조사입니다.", "model": "모델명 또는 모델 번호입니다.", "serial_number": "대상의 일련번호입니다.", "documentation_url": "PDF 설명서, 제조사 페이지 등 이 대상의 참고 정보가 있는 URL 링크입니다(선택 사항).", "notes": "대상에 대한 자유 형식 메모입니다 — 부품 번호, 절차, 설정 참고 사항 등.", "area_id": "이 대상이 위치한 집 안의 구역입니다.", "installation_date": "이 대상을 설치했거나 구입한 날짜입니다.", "warranty_expiry": "이 대상의 제조사 보증이 만료되는 날짜입니다.", "go_back": "저장하지 않고 기본 메뉴로 돌아갑니다." } } } }, "entity": { "button": { "button_complete": { "name": "{task_name} 완료" }, "button_skip": { "name": "{task_name} 건너뛰기" }, "button_reset": { "name": "{task_name} 초기화" } }, "sensor": { "maintenance_task": { "name": "{task_name}", "state": { "ok": "정상", "due_soon": "기한 임박", "overdue": "기한 초과", "triggered": "트리거됨", "archived": "보관됨", "paused": "일시 중지됨" }, "state_attributes": { "maintenance_type": { "name": "유지보수 유형", "state": { "cleaning": "청소", "inspection": "점검", "replacement": "교체", "calibration": "보정", "service": "정비", "reading": "측정", "custom": "사용자 지정" } }, "schedule_type": { "name": "일정 유형", "state": { "time_based": "시간 기반", "sensor_based": "센서 기반", "one_time": "일회성", "manual": "수동" } }, "interval_days": { "name": "주기" }, "interval_unit": { "name": "주기 단위" }, "warning_days": { "name": "경고 일수" }, "last_performed": { "name": "마지막 수행일" }, "next_due": { "name": "다음 기한" }, "days_until_due": { "name": "기한까지 남은 일수" }, "parent_object": { "name": "상위 대상" }, "times_performed": { "name": "수행 횟수" }, "total_cost": { "name": "총 비용" }, "average_duration": { "name": "평균 소요 시간(분)" }, "notes": { "name": "메모" }, "documentation_url": { "name": "문서 URL" }, "trigger_entity": { "name": "트리거 엔티티" }, "trigger_attribute": { "name": "트리거 속성" }, "trigger_type": { "name": "트리거 유형", "state": { "threshold": "임계값", "counter": "카운터", "state_change": "상태 변경", "runtime": "가동 시간", "compound": "복합" } }, "trigger_active": { "name": "트리거 활성" }, "trigger_current_value": { "name": "트리거 현재 값" }, "trigger_entity_state": { "name": "트리거 엔티티 상태", "state": { "available": "사용 가능", "unavailable": "사용 불가", "missing": "없음", "startup": "시작 중" } }, "trigger_above": { "name": "초과 시 트리거" }, "trigger_below": { "name": "미만 시 트리거" }, "trigger_for_minutes": { "name": "트리거 지속 시간(분)" }, "trigger_target_value": { "name": "트리거 목표 값" }, "trigger_delta_mode": { "name": "트리거 델타 모드" }, "trigger_baseline_value": { "name": "트리거 기준값" }, "trigger_current_delta": { "name": "트리거 현재 델타" }, "trigger_from_state": { "name": "트리거 이전 상태" }, "trigger_to_state": { "name": "트리거 이후 상태" }, "trigger_target_changes": { "name": "트리거 목표 변경 횟수" }, "trigger_change_count": { "name": "트리거 변경 횟수" }, "trigger_runtime_hours": { "name": "목표 가동 시간(시간)" }, "trigger_accumulated_hours": { "name": "누적 가동 시간(시간)" }, "trigger_remaining_hours": { "name": "남은 가동 시간(시간)" }, "last_entry": { "name": "마지막 기록" }, "suggested_interval": { "name": "제안 주기" }, "interval_confidence": { "name": "주기 신뢰도", "state": { "low": "낮음", "medium": "보통", "high": "높음" } }, "adaptive_scheduling_enabled": { "name": "적응형 일정 사용됨" }, "seasonal_factor": { "name": "계절 계수" }, "seasonal_reason": { "name": "계절 근거", "state": { "learned": "학습됨", "manual": "수동" } }, "degradation_rate": { "name": "열화율" }, "degradation_trend": { "name": "열화 추세", "state": { "rising": "상승", "falling": "하강", "stable": "안정", "insufficient_data": "데이터 부족" } }, "days_until_threshold": { "name": "임계값까지 남은 일수" }, "threshold_prediction_confidence": { "name": "예측 신뢰도", "state": { "low": "낮음", "medium": "보통", "high": "높음" } }, "environmental_factor": { "name": "환경 계수" }, "environmental_entity": { "name": "환경 엔티티" }, "weibull_beta": { "name": "Weibull 형상 모수(β)" }, "weibull_eta": { "name": "Weibull 척도 모수(η)" }, "weibull_r_squared": { "name": "Weibull 결정계수(R²)" }, "weibull_beta_interpretation": { "name": "고장 패턴", "state": { "early_failures": "초기 고장", "random_failures": "무작위 고장", "wear_out": "마모성 고장", "highly_predictable": "매우 예측 가능" } }, "confidence_interval_low": { "name": "신뢰 구간(하한)" }, "confidence_interval_high": { "name": "신뢰 구간(상한)" }, "interval_anchor": { "name": "주기 기준점", "state": { "completion": "완료일 기준", "planned": "계획일 기준" } }, "due_date": { "name": "기한" } } }, "summary_overdue": { "name": "기한 초과" }, "summary_due_soon": { "name": "기한 임박" }, "summary_triggered": { "name": "트리거됨" }, "summary_needs_attention": { "name": "주의 필요" }, "summary_ok": { "name": "정상" }, "document_storage": { "name": "문서 저장소" }, "summary_total_tasks": { "name": "전체 작업 수" }, "next_due": { "name": "{task_name} 다음 기한" }, "days_until_due": { "name": "{task_name} 기한까지 남은 일수" }, "parts_to_reorder": { "name": "재주문할 부품" }, "batteries_to_replace": { "name": "교체할 배터리" } }, "calendar": { "maintenance_schedule": { "name": "유지보수 일정" } }, "binary_sensor": { "maintenance_task_due": { "name": "{task_name} 기한 초과", "state_attributes": { "maintenance_status": { "name": "유지보수 상태", "state": { "ok": "정상", "due_soon": "기한 임박", "overdue": "기한 초과", "triggered": "트리거됨", "archived": "보관됨" } }, "days_until_due": { "name": "기한까지 남은 일수" }, "next_due": { "name": "다음 기한" }, "parent_object": { "name": "상위 대상" } } } }, "todo": { "maintenance_todo": { "name": "유지보수" } } }, "selector": { "maintenance_type": { "options": { "cleaning": "청소", "inspection": "점검", "replacement": "교체", "calibration": "보정", "service": "정비", "reading": "측정", "custom": "사용자 지정" } }, "schedule_type": { "options": { "time_based": "시간 기반", "weekdays": "요일별", "nth_weekday": "매월 n번째 요일", "day_of_month": "매월 특정 일", "sensor_based": "센서 기반", "one_time": "일회성", "manual": "수동" } }, "interval_unit": { "options": { "days": "일", "weeks": "주", "months": "개월", "years": "년" } }, "trigger_type": { "options": { "threshold": "임계값", "counter": "카운터", "state_change": "상태 변경", "runtime": "가동 시간", "compound": "복합(여러 조건)" } }, "compound_logic": { "options": { "and": "AND (모든 조건이 트리거되어야 함)", "or": "OR (어느 한 조건만 트리거되면 됨)" } }, "entity_logic": { "options": { "any": "아무 엔티티나 트리거되면 됨", "all": "모든 엔티티가 트리거되어야 함" } }, "notification_title_style": { "options": { "default": "기본(상태별 제목)", "object_name": "대상 이름을 제목으로", "task_name": "작업 이름을 제목으로" } } }, "services": { "complete": { "name": "유지보수 완료", "description": "유지보수 작업을 완료로 표시합니다.", "fields": { "entity_id": { "name": "엔티티", "description": "완료할 유지보수 센서 엔티티입니다." }, "notes": { "name": "메모", "description": "수행한 유지보수에 대한 메모입니다(선택 사항)." }, "cost": { "name": "비용", "description": "수행한 유지보수의 비용입니다." }, "duration": { "name": "소요 시간", "description": "유지보수에 걸린 시간(분)입니다." }, "reading_value": { "name": "측정값", "description": "측정형 작업에 기록할 값입니다(계량기 값, 수위 확인 등)." } } }, "reset": { "name": "유지보수 초기화", "description": "유지보수 작업의 마지막 수행일을 초기화합니다.", "fields": { "entity_id": { "name": "엔티티", "description": "초기화할 유지보수 센서 엔티티입니다." }, "date": { "name": "날짜", "description": "마지막 수행일로 설정할 날짜입니다. 기본값은 오늘입니다." } } }, "skip": { "name": "유지보수 건너뛰기", "description": "현재 유지보수 주기를 건너뜁니다.", "fields": { "entity_id": { "name": "엔티티", "description": "건너뛸 유지보수 센서 엔티티입니다." }, "reason": { "name": "사유", "description": "유지보수를 건너뛰는 사유입니다(선택 사항)." } } }, "export_data": { "name": "데이터 내보내기", "description": "모든 유지보수 데이터를 JSON 또는 YAML로 내보냅니다.", "fields": { "format": { "name": "형식", "description": "내보낼 데이터의 출력 형식입니다(json 또는 yaml)." }, "include_history": { "name": "이력 포함", "description": "내보내기에 작업 이력 항목을 포함할지 여부입니다." } } }, "add_object": { "name": "대상 추가", "description": "새 유지보수 대상(기기)을 만듭니다. 새 entry_id를 반환합니다.", "fields": { "name": { "name": "이름", "description": "대상/기기의 이름입니다." }, "area_id": { "name": "구역", "description": "기기를 할당할 구역입니다." }, "manufacturer": { "name": "제조사" }, "model": { "name": "모델" }, "serial_number": { "name": "일련번호" }, "installation_date": { "name": "설치일" }, "warranty_expiry": { "name": "보증 만료일", "description": "보증 만료일입니다(자산 추적과 알림에 사용)." }, "documentation_url": { "name": "문서 URL", "description": "설명서나 제조사 페이지 링크입니다(http/https만 가능)." }, "notes": { "name": "메모" } } }, "add_task": { "name": "작업 추가", "description": "기존 대상에 유지보수 작업을 추가합니다. 새 task_id를 반환합니다.", "fields": { "entry_id": { "name": "대상", "description": "작업을 추가할 유지보수 대상입니다." }, "name": { "name": "이름", "description": "작업의 이름입니다." }, "task_type": { "name": "작업 유형", "description": "자유 형식 범주입니다(예: inspection, service, custom)." }, "schedule_type": { "name": "일정 유형", "description": "time_based(주기) 또는 sensor_based. 기본값: time_based." }, "interval_days": { "name": "주기", "description": "interval_unit과 함께 사용하는 반복 간격입니다(시간 기반 작업용)." }, "interval_unit": { "name": "주기 단위", "description": "주기의 단위: days, weeks, months 또는 years. 기본값: days." }, "due_date": { "name": "기한", "description": "일회성 작업(schedule_type one_time)의 기한(YYYY-MM-DD)입니다." }, "schedule": { "name": "달력 일정", "description": "달력 유형을 위한 중첩 반복 규칙입니다. 예: 첫째 주 토요일은 kind=nth_weekday, nth=1, weekday=5 (weekday 0=월 ... 6=일), 월요일과 목요일은 kind=weekdays, weekdays=[0, 3], 매월 15일은 kind=day_of_month, day=15. interval_days / schedule_type보다 우선합니다." }, "warning_days": { "name": "경고(일)", "description": "기한 임박 구간에 들어가는 기한 전 일수입니다." }, "enabled": { "name": "사용" }, "notes": { "name": "메모" } } }, "update_task": { "name": "작업 업데이트", "description": "기존 유지보수 작업의 공통 필드를 업데이트합니다. 제공한 필드만 변경됩니다.", "fields": { "entry_id": { "name": "대상", "description": "작업이 속한 유지보수 대상입니다." }, "task_id": { "name": "작업 ID", "description": "업데이트할 작업의 ID입니다(list_tasks 참조)." }, "name": { "name": "이름", "description": "작업의 새 이름입니다." }, "task_type": { "name": "작업 유형", "description": "범주입니다(cleaning, inspection, replacement, calibration, service, reading, custom)." }, "schedule_type": { "name": "일정 유형", "description": "time_based(주기), sensor_based, one_time 또는 manual." }, "interval_days": { "name": "주기", "description": "interval_unit과 함께 사용하는 반복 간격입니다." }, "interval_unit": { "name": "주기 단위", "description": "days, weeks, months 또는 years 중 하나입니다." }, "due_date": { "name": "기한", "description": "일회성 작업의 기한(YYYY-MM-DD)입니다." }, "schedule": { "name": "일정(달력 반복)", "description": "달력 유형을 위한 중첩 반복 객체입니다. 예: kind=day_of_month, day=-1, business=true. 평면 필드보다 우선합니다." }, "warning_days": { "name": "경고 일수", "description": "작업이 기한 임박으로 바뀌는 기한 전 일수입니다." }, "enabled": { "name": "사용", "description": "작업의 활성 여부입니다." }, "notes": { "name": "메모", "description": "작업에 대한 자유 형식 메모입니다." }, "priority": { "name": "우선순위", "description": "low, normal 또는 high 중 하나입니다." }, "labels": { "name": "라벨", "description": "필터링과 보고에 사용할 태그 목록입니다." } } }, "delete_task": { "name": "작업 삭제", "description": "유지보수 작업을 이력과 함께 삭제합니다. 되돌릴 수 없습니다 - 대신 패널에서 보관 처리하는 것을 고려하세요.", "fields": { "entry_id": { "name": "대상", "description": "작업이 속한 유지보수 대상입니다." }, "task_id": { "name": "작업 ID", "description": "삭제할 작업의 ID입니다(list_tasks 참조)." } } }, "list_tasks": { "name": "작업 목록", "description": "자동화, 스크립트, 음성에서 사용할 수 있도록 활성 유지보수 작업의 스냅숏(ID, 이름, 상태, 다음 기한)을 반환합니다. 대상 및 상태별 필터링을 지원합니다.", "fields": { "entry_id": { "name": "대상", "description": "이 유지보수 대상의 작업만 반환합니다." }, "status": { "name": "상태", "description": "이 상태의 작업만 반환합니다." } } } }, "issues": { "document_storage_issues": { "title": "문서 저장소 정리가 필요합니다", "fix_flow": { "step": { "init": { "title": "문서 저장 공간 회수", "description": "Maintenance Supporter가 문서 저장소에서 참조되지 않는 파일이나 유효하지 않은 레코드를 발견했습니다 — 보통 비정상 종료, 외부에서의 파일 삭제 또는 부분 복원의 결과입니다.\n\n**제출**을 클릭하면 공간을 회수합니다: 참조되지 않거나 오래된 파일은 삭제되고 유효하지 않은 문서 레코드는 제거됩니다. 문서가 여전히 참조하는 파일은 절대 건드리지 않습니다.\n\n(정리하지 않고 넘어가려면 수리 페이지에서 Home Assistant의 **무시** 버튼을 사용하세요.)" } } } }, "missing_trigger_entity": { "title": "트리거 센서를 찾을 수 없음: {task_name}", "fix_flow": { "step": { "init": { "title": "누락된 트리거 엔티티", "description": "대상 \"{object_name}\"의 작업 \"{task_name}\"에 트리거로 구성된 센서 엔티티 `{entity_id}`를 더 이상 사용할 수 없습니다.\n\n이 문제를 해결할 방법을 선택하세요:", "menu_options": { "replace_entity": "다른 엔티티로 교체", "remove_trigger": "센서 트리거 제거", "dismiss": "무시(다시 나타남)" } }, "replace_entity": { "title": "트리거 엔티티 교체", "description": "\"{object_name}\"의 작업 \"{task_name}\"에서 `{entity_id}`를 대체할 새 엔티티를 선택하세요.", "data": { "new_entity_id": "새 트리거 엔티티" }, "data_description": { "new_entity_id": "트리거로 사용할 새 센서 엔티티를 선택하세요." } }, "remove_trigger": { "title": "센서 트리거 제거", "description": "\"{object_name}\"의 작업 \"{task_name}\"에서 센서 트리거를 제거하고 일정을 시간 기반 또는 수동으로 전환합니다. 유지보수 이력은 보존됩니다.\n\n이전 트리거 엔티티: `{entity_id}`" } } } }, "orphan_admin_panel_user": { "title": "패널 접근 권한 사용자가 더 이상 존재하지 않습니다", "fix_flow": { "step": { "init": { "title": "패널 접근 목록에 남아 있는 사용자", "description": "사용자 `{user_id}…`가 Maintenance Supporter 패널 접근 목록에 있지만 Home Assistant에 더 이상 존재하지 않습니다. 해당 사용자가 삭제된 것으로 보입니다.\n\n**제출**을 클릭하면 이 사용자를 목록에서 제거합니다. (그대로 두려면 수리 페이지에서 Home Assistant의 **무시** 버튼을 사용하세요.)" } } } }, "stale_action_entity": { "title": "완료 동작이 삭제된 엔티티를 참조합니다", "fix_flow": { "step": { "init": { "title": "완료 동작: {stale_entity}이(가) 더 이상 존재하지 않음", "description": "작업 **{task_name}**에는 `{stale_entity}`의 서비스를 호출하는 `on_complete_action`이 구성되어 있지만, 해당 엔티티는 더 이상 Home Assistant에 등록되어 있지 않습니다.\n\n수리 방법을 선택하세요:", "menu_options": { "replace_entity": "다른 엔티티로 교체", "remove_action": "완료 동작 제거" } }, "replace_entity": { "title": "대상 엔티티 교체", "description": "작업 **{task_name}**에서 `{stale_entity}` 대신 사용할 엔티티를 선택하세요.", "data": { "new_entity": "새 대상 엔티티" } }, "remove_action": { "title": "완료 동작 제거", "description": "작업 **{task_name}**에서 `on_complete_action`을 완전히 제거합니다. 작업 자체는 영향을 받지 않으며, 완료 시 서비스 호출만 제거됩니다." } } } }, "notify_service_missing": { "title": "알림 서비스 `{service}`를 찾을 수 없습니다", "description": "Maintenance Supporter가 `{service}`를 통해 알림을 보내도록 구성되어 있지만, 해당 서비스가 현재 Home Assistant에 존재하지 않아 알림이 조용히 실패합니다.\n\n보통 서비스 이름이 변경되었거나, 그 서비스를 제공하던 통합구성요소(모바일 앱, 알림 그룹 등)가 제거된 경우입니다. 해결 방법: 해당 서비스를 복원하거나, **설정 → 기기 및 서비스 → Maintenance Supporter → 구성 → 일반 설정**에서 유효한 `notify.*` 서비스를 선택하세요.\n\n참고: 여기서는 구성된 서비스 자체만 확인합니다. 알림이 일부 기기에만 도달한다면 알림 그룹 *내부의* 구성원이 잘못 구성되었을 가능성이 높습니다 — 이는 여기서 확인되지 않으니 Home Assistant의 **시스템 로그**(설정 → 시스템 → 로그)를 확인하세요." }, "missing_global_entry": { "title": "Maintenance Supporter 전역 구성이 없습니다", "fix_flow": { "step": { "init": { "title": "전역 구성 복원", "description": "유지보수 대상은 그대로 있지만 전역 \"Maintenance Supporter\" 항목이 삭제되었습니다 — 그래서 요약 센서, 사이드바 패널, 대시보드 카운트가 사라지고 KPI 칩이 \"unknown\"으로 표시됩니다.\n\n**제출**을 클릭하면 기본 설정으로 전역 구성을 다시 만듭니다. 대상과 작업은 그대로 유지됩니다. 이후 설정 → 기기 및 서비스에서 알림과 기본값을 조정할 수 있습니다.\n\n(그대로 두려면 Home Assistant의 **무시** 버튼을 사용하세요.)" } } } } }, "exceptions": { "no_coordinator_for_entity": { "message": "엔티티 {entity_id}에 대한 유지보수 코디네이터를 찾을 수 없습니다." }, "no_task_for_entity": { "message": "엔티티 {entity_id}에 대한 유지보수 작업을 찾을 수 없습니다." } }, "triggers": { "task_became_overdue": { "name": "유지보수 작업이 기한을 초과함", "description": "유지보수 작업의 상태가 기한 초과로 바뀌면 트리거됩니다.", "fields": { "behavior": { "name": "동작" }, "for": { "name": "지속 시간" } } }, "task_became_due_soon": { "name": "유지보수 작업의 기한이 임박함", "description": "유지보수 작업이 경고 구간에 들어가면 트리거됩니다.", "fields": { "behavior": { "name": "동작" }, "for": { "name": "지속 시간" } } }, "sensor_trigger_activated": { "name": "센서 트리거가 활성화됨", "description": "센서 기반 유지보수 작업이 활성화되면 트리거됩니다.", "fields": { "behavior": { "name": "동작" }, "for": { "name": "지속 시간" } } }, "task_became_ok": { "name": "유지보수 작업이 정상으로 돌아옴", "description": "유지보수 작업에 더 이상 주의가 필요 없게 되면 트리거됩니다.", "fields": { "behavior": { "name": "동작" }, "for": { "name": "지속 시간" } } } }, "conditions": { "task_is_overdue": { "name": "유지보수 작업이 기한 초과 상태임", "description": "유지보수 작업이 기한을 초과했는지 검사합니다.", "fields": { "behavior": { "name": "동작" }, "for": { "name": "지속 시간" } } }, "task_is_due_soon": { "name": "유지보수 작업이 기한 임박 상태임", "description": "유지보수 작업이 경고 구간에 있는지 검사합니다.", "fields": { "behavior": { "name": "동작" }, "for": { "name": "지속 시간" } } }, "task_is_triggered": { "name": "센서 트리거가 활성 상태임", "description": "센서 기반 유지보수 작업이 트리거되었는지 검사합니다.", "fields": { "behavior": { "name": "동작" }, "for": { "name": "지속 시간" } } }, "task_needs_attention": { "name": "유지보수 작업에 주의가 필요함", "description": "유지보수 작업이 기한 초과 또는 트리거 상태인지 검사합니다.", "fields": { "behavior": { "name": "동작" }, "for": { "name": "지속 시간" } } } } }