Files
Home-Assistant/custom_components/ha_washdata/translations/th.json
T
2026-06-14 02:01:49 -04:00

1342 lines
130 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"config": {
"step": {
"user": {
"title": "การตั้งค่า WashData",
"description": "กำหนดค่าเครื่องซักผ้าหรืออุปกรณ์อื่นๆ ของคุณ\n\nจำเป็นต้องมีเซ็นเซอร์วัดกำลัง\n\n**ต่อไป ระบบจะถามว่าคุณต้องการสร้างโปรไฟล์แรกหรือไม่**",
"data": {
"name": "ชื่ออุปกรณ์",
"device_type": "ประเภทอุปกรณ์",
"power_sensor": "เซ็นเซอร์วัดกำลัง",
"min_power": "เกณฑ์พลังงานขั้นต่ำ (W)"
},
"data_description": {
"name": "ชื่อที่จำง่ายสำหรับอุปกรณ์นี้ (เช่น \"เครื่องซักผ้า\" \"เครื่องล้างจาน\")",
"device_type": "นี่คืออุปกรณ์ประเภทใด? ช่วยปรับแต่งการตรวจจับและการติดฉลาก",
"power_sensor": "เอนทิตีเซ็นเซอร์ที่รายงานการใช้พลังงานแบบเรียลไทม์ (เป็นวัตต์) จากปลั๊กอัจฉริยะของคุณ",
"min_power": "การอ่านค่ากำลังไฟฟ้าที่สูงกว่าเกณฑ์นี้ (เป็นวัตต์) แสดงว่าเครื่องกำลังทำงานอยู่ เริ่มต้นด้วย 2W สำหรับอุปกรณ์ส่วนใหญ่"
}
},
"first_profile": {
"title": "สร้างโปรไฟล์แรก",
"description": "**รอบ** คือการซักรอบเครื่องของคุณอย่างสมบูรณ์ (เช่น การซักผ้า) **โปรไฟล์** จัดกลุ่มโปรแกรมตามประเภท (เช่น 'ผ้าฝ้าย' 'ซักด่วน') ขณะนี้การสร้างโปรไฟล์ช่วยให้ประมาณการระยะเวลาการรวมระบบได้ทันที\n\nคุณสามารถเลือกโปรไฟล์นี้ด้วยตนเองในการควบคุมอุปกรณ์หากไม่ได้ตรวจพบโดยอัตโนมัติ\n\n**เว้น 'ชื่อโปรไฟล์' ว่างไว้เพื่อข้ามขั้นตอนนี้**",
"data": {
"profile_name": "ชื่อโปรไฟล์ (ไม่บังคับ)",
"manual_duration": "ระยะเวลาโดยประมาณ (นาที)"
}
}
},
"error": {
"cannot_connect": "ไม่สามารถเชื่อมต่อได้",
"invalid_auth": "การรับรองความถูกต้องไม่ถูกต้อง",
"unknown": "ข้อผิดพลาดที่ไม่คาดคิด"
},
"abort": {
"already_configured": "อุปกรณ์ได้รับการกำหนดค่าแล้ว"
}
},
"options": {
"step": {
"init": {
"menu_options": {
"learning_feedbacks": "ทบทวนผลตอบรับการเรียนรู้",
"settings": "การตั้งค่า",
"notifications": "การแจ้งเตือน",
"manage_cycles": "จัดการรอบ",
"manage_profiles": "จัดการโปรไฟล์",
"manage_phase_catalog": "จัดการแคตตาล็อกเฟส",
"record_cycle": "รอบการบันทึก (แบบแมนนวล)",
"diagnostics": "การวินิจฉัยและการบำรุงรักษา"
}
},
"apply_suggestions": {
"title": "คัดลอกค่าที่แนะนำ",
"description": "การดำเนินการนี้จะคัดลอกค่าที่แนะนำในปัจจุบันไปยังการตั้งค่าที่บันทึกไว้ นี่เป็นการดำเนินการเพียงครั้งเดียวและไม่ได้เปิดใช้งานการเขียนทับอัตโนมัติ\n\nค่าที่แนะนำเพื่อคัดลอก:\n{suggested}",
"data": {
"confirm": "ยืนยันการดำเนินการคัดลอก"
}
},
"apply_suggestions_confirm": {
"title": "ตรวจสอบการเปลี่ยนแปลงที่แนะนำ",
"description": "พบ WashData **{pending_count}** ค่าที่แนะนำเพื่อใช้\n\nการเปลี่ยนแปลง:\n{changes}\n\n✅ ทำเครื่องหมายในช่องด้านล่างแล้วคลิก **ส่ง** เพื่อนำไปใช้และบันทึกการเปลี่ยนแปลงเหล่านี้ทันที\n❌ ปล่อยว่างไว้โดยไม่เลือกแล้วคลิก **ส่ง** เพื่อยกเลิกและย้อนกลับ",
"data": {
"confirm_apply_suggestions": "ใช้และบันทึกการเปลี่ยนแปลงเหล่านี้"
}
},
"settings": {
"title": "การตั้งค่า",
"description": "{deprecation_warning}ปรับแต่งเกณฑ์การตรวจจับ การเรียนรู้ และพฤติกรรมขั้นสูง ค่าเริ่มต้นทำงานได้ดีกับการตั้งค่าส่วนใหญ่\n\nการตั้งค่าที่แนะนำที่พร้อมใช้งานในขณะนี้: {suggestions_count}.\nหากค่านี้มากกว่า 0 ให้เปิดการตั้งค่าขั้นสูงและใช้ 'ใช้ค่าที่แนะนำ' เพื่อตรวจสอบคำแนะนำ",
"data": {
"apply_suggestions": "ใช้ค่าที่แนะนำ",
"device_type": "ประเภทอุปกรณ์",
"power_sensor": "เอนทิตีเซ็นเซอร์กำลัง",
"min_power": "กำลังไฟขั้นต่ำ (W)",
"off_delay": "ความล่าช้าในการสิ้นสุดรอบ (s)",
"notify_actions": "การดำเนินการแจ้งเตือน",
"notify_people": "เลื่อนการจัดส่งจนกว่าคนเหล่านี้จะถึงบ้าน",
"notify_only_when_home": "เลื่อนการแจ้งเตือนจนกว่าบุคคลที่เลือกจะถึงบ้าน",
"notify_fire_events": "เปิดใช้งานเหตุการณ์ระบบอัตโนมัติ",
"notify_start_services": "เริ่มรอบ - เป้าหมายการแจ้งเตือน",
"notify_finish_services": "วงจรเสร็จสิ้น - เป้าหมายการแจ้งเตือน",
"notify_live_services": "ความคืบหน้าสด - เป้าหมายการแจ้งเตือน",
"notify_before_end_minutes": "การแจ้งเตือนก่อนเสร็จสิ้น (นาทีก่อนสิ้นสุด)",
"notify_title": "ชื่อการแจ้งเตือน",
"notify_icon": "ไอคอนการแจ้งเตือน",
"notify_start_message": "เริ่มรูปแบบข้อความ",
"notify_finish_message": "เสร็จสิ้นรูปแบบข้อความ",
"notify_pre_complete_message": "รูปแบบข้อความก่อนกรอก",
"show_advanced": "แก้ไขการตั้งค่าขั้นสูง (ขั้นตอนถัดไป)"
},
"data_description": {
"apply_suggestions": "เลือกช่องนี้เพื่อคัดลอกค่าที่แนะนำโดยอัลกอริทึมการเรียนรู้ลงในแบบฟอร์ม ตรวจสอบก่อนบันทึก\n\nข้อเสนอแนะ (จากการเรียนรู้):\n- min_power: {suggested_min_power} W\n- off_delay: {suggested_off_delay} s\n- watchdog_interval: {suggested_watchdog_interval} s\n- no_update_active_timeout: {suggested_no_update_active_timeout} s\n- profile_match_interval: {suggested_profile_match_interval} s\n- auto_label_confidence: {suggested_auto_label_confidence}\n- duration_tolerance: {suggested_duration_tolerance}\n- profile_duration_tolerance: {suggested_profile_duration_tolerance}\n- profile_match_min_duration_ratio: {suggested_profile_match_min_duration_ratio}\n- profile_match_max_duration_ratio: {suggested_profile_match_max_duration_ratio}\n- start_threshold_w: {suggested_start_threshold_w} W\n- stop_threshold_w: {suggested_stop_threshold_w} W\n- end_energy_threshold: {suggested_end_energy_threshold} Wh\n- running_dead_zone: {suggested_running_dead_zone} s\n{suggested_reason}",
"device_type": "เลือกประเภทของเครื่องใช้ไฟฟ้า (เครื่องซักผ้า, เครื่องอบผ้า, เครื่องล้างจาน, เครื่องชงกาแฟ, EV) แท็กนี้จะถูกเก็บไว้ในแต่ละรอบเพื่อการจัดระเบียบที่ดีขึ้น",
"power_sensor": "เอนทิตีเซ็นเซอร์รายงานกำลังแบบเรียลไทม์ (เป็นวัตต์) คุณสามารถเปลี่ยนแปลงได้ตลอดเวลาโดยไม่สูญเสียข้อมูลในอดีต ซึ่งมีประโยชน์หากคุณเปลี่ยนปลั๊กอัจฉริยะ",
"min_power": "การอ่านค่ากำลังไฟฟ้าที่สูงกว่าเกณฑ์นี้ (เป็นวัตต์) แสดงว่าเครื่องกำลังทำงานอยู่ เริ่มต้นด้วย 2W สำหรับอุปกรณ์ส่วนใหญ่",
"off_delay": "วินาทีที่กำลังปรับให้เรียบจะต้องอยู่ต่ำกว่าเกณฑ์หยุดเพื่อทำเครื่องหมายว่าเสร็จสมบูรณ์ ค่าเริ่มต้น: 120 วินาที",
"notify_actions": "ลำดับการดำเนินการของ Home Assistant ที่เป็นตัวเลือกสำหรับการแจ้งเตือน (สคริปต์ การแจ้งเตือน TTS ฯลฯ) หากตั้งค่าไว้ การดำเนินการจะทำงานก่อนบริการสำรองจะแจ้ง",
"notify_people": "เอนทิตีบุคคลที่ใช้สำหรับการตรวจสอบสถานะ เมื่อเปิดใช้งาน การส่งการแจ้งเตือนจะล่าช้าจนกว่าบุคคลที่เลือกอย่างน้อยหนึ่งคนจะถึงบ้าน",
"notify_only_when_home": "หากเปิดใช้งาน ให้เลื่อนการแจ้งเตือนจนกว่าบุคคลที่เลือกอย่างน้อยหนึ่งคนจะถึงบ้าน",
"notify_fire_events": "หากเปิดใช้งาน จะส่งสัญญาณเหตุการณ์ Home Assistant สำหรับการเริ่มและสิ้นสุดรอบ (ha_washdata_cycle_started และ ha_washdata_cycle_ended) เพื่อขับเคลื่อนระบบอัตโนมัติ",
"notify_start_services": "บริการแจ้งเตือนอย่างน้อยหนึ่งรายการเพื่อแจ้งเตือนเมื่อรอบเริ่มต้น เว้นว่างไว้เพื่อข้ามการแจ้งเตือนการเริ่มต้น",
"notify_finish_services": "บริการแจ้งเตือนอย่างน้อยหนึ่งบริการเพื่อแจ้งเตือนเมื่อรอบการสิ้นสุดหรือใกล้จะเสร็จสิ้น เว้นว่างไว้เพื่อข้ามการแจ้งเตือนให้เสร็จสิ้น",
"notify_live_services": "แจ้งบริการอย่างน้อยหนึ่งรายการเพื่อรับการอัปเดตความคืบหน้าสดในขณะที่วงจรดำเนินไป (เฉพาะแอปที่แสดงร่วมบนมือถือเท่านั้น) เว้นว่างไว้เพื่อข้ามการอัปเดตสด",
"notify_before_end_minutes": "นาทีก่อนที่จะสิ้นสุดรอบโดยประมาณเพื่อทริกเกอร์การแจ้งเตือน ตั้งค่าเป็น 0 เพื่อปิดใช้งาน ค่าเริ่มต้น: 0",
"notify_title": "ชื่อที่กำหนดเองสำหรับการแจ้งเตือน รองรับตัวยึดตำแหน่ง {device}",
"notify_icon": "ไอคอนที่ใช้สำหรับการแจ้งเตือน (เช่น mdi:washing-machine) เว้นว่างไว้เพื่อส่งโดยไม่มีไอคอน",
"notify_start_message": "ข้อความที่ส่งเมื่อรอบเริ่มต้น รองรับตัวยึดตำแหน่ง {device}",
"notify_finish_message": "ข้อความที่ส่งเมื่อรอบสิ้นสุด รองรับตัวยึดตำแหน่ง {device}, {duration}, {program}, {energy_kwh}, {cost}",
"notify_pre_complete_message": "ข้อความของการอัปเดตความคืบหน้าสดที่เกิดซ้ำในขณะที่วงจรดำเนินไป รองรับตัวยึดตำแหน่ง {device}, {minutes}, {program}"
}
},
"notifications": {
"title": "การแจ้งเตือน",
"description": "กำหนดค่าช่องทางการแจ้งเตือน เทมเพลต และการอัปเดตความคืบหน้าบนมือถือแบบสดที่เป็นตัวเลือก",
"data": {
"notify_actions": "การดำเนินการแจ้งเตือน",
"notify_people": "เลื่อนการจัดส่งจนกว่าคนเหล่านี้จะถึงบ้าน",
"notify_only_when_home": "เลื่อนการแจ้งเตือนจนกว่าบุคคลที่เลือกจะถึงบ้าน",
"notify_fire_events": "เปิดใช้งานเหตุการณ์ระบบอัตโนมัติ",
"notify_start_services": "เริ่มรอบ - เป้าหมายการแจ้งเตือน",
"notify_finish_services": "วงจรเสร็จสิ้น - เป้าหมายการแจ้งเตือน",
"notify_live_services": "ความคืบหน้าสด - เป้าหมายการแจ้งเตือน",
"notify_before_end_minutes": "การแจ้งเตือนก่อนเสร็จสิ้น (นาทีก่อนสิ้นสุด)",
"notify_live_interval_seconds": "ช่วงเวลาการอัปเดตสด (วินาที)",
"notify_live_overrun_percent": "ค่าเผื่อการโอเวอร์รันการอัปเดตสด (%)",
"notify_live_chronometer": "เครื่องจับเวลาถอยหลังโครโนมิเตอร์",
"notify_title": "ชื่อการแจ้งเตือน",
"notify_icon": "ไอคอนการแจ้งเตือน",
"notify_start_message": "เริ่มรูปแบบข้อความ",
"notify_finish_message": "เสร็จสิ้นรูปแบบข้อความ",
"notify_pre_complete_message": "รูปแบบข้อความก่อนกรอก",
"energy_price_entity": "ราคาพลังงาน - เอนทิตี (ไม่บังคับ)",
"energy_price_static": "ราคาพลังงาน - มูลค่าคงที่ (ไม่บังคับ)",
"go_back": "ย้อนกลับโดยไม่บันทึก",
"notify_reminder_message": "รูปแบบข้อความเตือนความจำ",
"notify_timeout_seconds": "ปิดอัตโนมัติหลังจาก (วินาที)",
"notify_channel": "ช่องทางการแจ้งเตือน (สถานะ/สด/เตือนความจำ)",
"notify_finish_channel": "ช่องทางการแจ้งเรียบร้อยแล้ว"
},
"data_description": {
"go_back": "ทำเครื่องหมายที่นี่แล้วคลิกส่งเพื่อทิ้งการเปลี่ยนแปลงด้านบนทั้งหมดและกลับไปยังเมนูหลัก",
"notify_actions": "ลำดับการดำเนินการของ Home Assistant ที่เป็นตัวเลือกสำหรับการแจ้งเตือน (สคริปต์ การแจ้งเตือน TTS ฯลฯ) หากตั้งค่าไว้ การดำเนินการจะทำงานก่อนบริการสำรองจะแจ้ง",
"notify_people": "เอนทิตีบุคคลที่ใช้สำหรับการตรวจสอบสถานะ เมื่อเปิดใช้งาน การส่งการแจ้งเตือนจะล่าช้าจนกว่าบุคคลที่เลือกอย่างน้อยหนึ่งคนจะถึงบ้าน",
"notify_only_when_home": "หากเปิดใช้งาน ให้เลื่อนการแจ้งเตือนจนกว่าบุคคลที่เลือกอย่างน้อยหนึ่งคนจะถึงบ้าน",
"notify_fire_events": "หากเปิดใช้งาน จะส่งสัญญาณเหตุการณ์ Home Assistant สำหรับการเริ่มและสิ้นสุดรอบ (ha_washdata_cycle_started และ ha_washdata_cycle_ended) เพื่อขับเคลื่อนระบบอัตโนมัติ",
"notify_start_services": "บริการแจ้งเตือนอย่างน้อยหนึ่งรายการเพื่อแจ้งเตือนเมื่อรอบเริ่มต้น (เช่น notify.mobile_app_my_phone) เว้นว่างไว้เพื่อข้ามการแจ้งเตือนการเริ่มต้น",
"notify_finish_services": "บริการแจ้งเตือนอย่างน้อยหนึ่งบริการเพื่อแจ้งเตือนเมื่อรอบการสิ้นสุดหรือใกล้จะเสร็จสิ้น เว้นว่างไว้เพื่อข้ามการแจ้งเตือนให้เสร็จสิ้น",
"notify_live_services": "แจ้งบริการอย่างน้อยหนึ่งรายการเพื่อรับการอัปเดตความคืบหน้าสดในขณะที่วงจรดำเนินไป (เฉพาะแอปที่แสดงร่วมบนมือถือเท่านั้น) เว้นว่างไว้เพื่อข้ามการอัปเดตสด",
"notify_before_end_minutes": "นาทีก่อนที่จะสิ้นสุดรอบโดยประมาณเพื่อทริกเกอร์การแจ้งเตือน ตั้งค่าเป็น 0 เพื่อปิดใช้งาน ค่าเริ่มต้น: 0",
"notify_live_interval_seconds": "ความถี่ในการส่งการอัปเดตความคืบหน้าขณะทำงาน ค่าที่ต่ำกว่าจะตอบสนองมากกว่าแต่ใช้การแจ้งเตือนมากกว่า บังคับใช้อย่างน้อย 30 วินาที - ค่าที่ต่ำกว่า 30 วินาทีจะถูกปัดเศษเป็น 30 วินาทีโดยอัตโนมัติ",
"notify_live_overrun_percent": "อัตราความปลอดภัยที่สูงกว่าจำนวนการอัปเดตโดยประมาณสำหรับรอบที่ยาวนาน/เกินเวลา (เช่น 20% อนุญาตให้มีการอัปเดตโดยประมาณ 1.2 เท่า)",
"notify_live_chronometer": "เมื่อเปิดใช้งาน การอัปเดตแบบเรียลไทม์แต่ละครั้งจะมีการนับถอยหลังโครโนมิเตอร์จนถึงเวลาสิ้นสุดโดยประมาณ ตัวจับเวลาการแจ้งเตือนจะทำเครื่องหมายบนอุปกรณ์โดยอัตโนมัติระหว่างการอัปเดต (เฉพาะแอปที่ใช้ร่วมกับ Android เท่านั้น)",
"notify_title": "ชื่อที่กำหนดเองสำหรับการแจ้งเตือน รองรับตัวยึดตำแหน่ง {device}",
"notify_icon": "ไอคอนที่ใช้สำหรับการแจ้งเตือน (เช่น mdi:washing-machine) เว้นว่างไว้เพื่อส่งโดยไม่มีไอคอน",
"notify_start_message": "ข้อความที่ส่งเมื่อรอบเริ่มต้น รองรับตัวยึดตำแหน่ง {device}",
"notify_finish_message": "ข้อความที่ส่งเมื่อรอบสิ้นสุด รองรับตัวยึดตำแหน่ง {device}, {duration}, {program}, {energy_kwh}, {cost}",
"energy_price_entity": "เลือกเอนทิตีตัวเลขที่เก็บราคาไฟฟ้าปัจจุบัน (เช่น sensor.electricity_price, input_number.energy_rate) เมื่อตั้งค่าแล้ว ให้เปิดใช้งานตัวยึดตำแหน่ง {cost} มีความสำคัญมากกว่ามูลค่าคงที่หากมีการกำหนดค่าทั้งสองรายการ",
"energy_price_static": "ราคาไฟฟ้าคงที่ต่อกิโลวัตต์ชั่วโมง เมื่อตั้งค่าแล้ว ให้เปิดใช้งานตัวยึดตำแหน่ง {cost} ละเว้นหากมีการกำหนดค่าเอนทิตีด้านบน เพิ่มสัญลักษณ์สกุลเงินของคุณในเทมเพลตข้อความ เช่น {cost} €",
"notify_reminder_message": "ข้อความเตือนความจำแบบครั้งเดียวส่งตามจำนวนนาทีที่กำหนดไว้ก่อนสิ้นสุดโดยประมาณ แตกต่างจากการอัปเดตสดที่เกิดซ้ำด้านบน รองรับตัวยึดตำแหน่ง {device}, {minutes}, {program}",
"notify_timeout_seconds": "ปิดการแจ้งเตือนโดยอัตโนมัติหลังจากผ่านไปหลายวินาทีนี้ (ส่งต่อเป็นแอปที่แสดงร่วม 'หมดเวลา') ตั้งค่าเป็น 0 เพื่อเก็บไว้จนกว่าจะถูกไล่ออก ค่าเริ่มต้น: 0",
"notify_channel": "Android ช่องทางการแจ้งเตือนแอปที่แสดงร่วมสำหรับสถานะ ความคืบหน้าสด และการแจ้งเตือน เสียงและความสำคัญของช่องได้รับการกำหนดค่าในแอปที่แสดงร่วมกันในครั้งแรกที่ใช้ชื่อช่อง - WashData จะตั้งค่าเฉพาะชื่อช่องเท่านั้น เว้นว่างไว้สำหรับค่าเริ่มต้นของแอป",
"notify_finish_channel": "แยกช่อง Android สำหรับการเตือนที่เสร็จสิ้นแล้ว (ใช้โดยตัวเตือนและเสียงจู้จี้รอซักรีดด้วย) เพื่อให้มีเสียงของตัวเองได้ เว้นว่างไว้เพื่อใช้ช่องด้านบนอีกครั้ง",
"notify_pre_complete_message": "ข้อความของการอัปเดตความคืบหน้าสดที่เกิดซ้ำในขณะที่วงจรดำเนินไป รองรับตัวยึดตำแหน่ง {device}, {minutes}, {program}"
}
},
"advanced_settings": {
"title": "การตั้งค่าขั้นสูง",
"description": "ปรับแต่งเกณฑ์การตรวจจับ การเรียนรู้ และพฤติกรรมขั้นสูง ค่าเริ่มต้นทำงานได้ดีกับการตั้งค่าส่วนใหญ่",
"sections": {
"suggestions_section": {
"name": "การตั้งค่าที่แนะนำ",
"description": "มีคำแนะนำที่เรียนรู้แล้ว {suggestions_count} รายการ ให้ทำเครื่องหมาย 'ใช้ค่าที่แนะนำ' เพื่อตรวจสอบการเปลี่ยนแปลงที่เสนอไว้ก่อนบันทึก",
"data": {
"apply_suggestions": "ใช้ค่าที่แนะนำ"
},
"data_description": {
"apply_suggestions": "เลือกช่องนี้เพื่อเปิดขั้นตอนการทบทวนค่าที่แนะนำจากอัลกอริทึมการเรียนรู้ ไม่มีสิ่งใดถูกบันทึกโดยอัตโนมัติ\n\nข้อเสนอแนะ (จากการเรียนรู้):\n- min_power: {suggested_min_power} W\n- off_delay: {suggested_off_delay} s\n- watchdog_interval: {suggested_watchdog_interval} s\n- no_update_active_timeout: {suggested_no_update_active_timeout} s\n- profile_match_interval: {suggested_profile_match_interval} s\n- auto_label_confidence: {suggested_auto_label_confidence}\n- duration_tolerance: {suggested_duration_tolerance}\n- profile_duration_tolerance: {suggested_profile_duration_tolerance}\n- profile_match_min_duration_ratio: {suggested_profile_match_min_duration_ratio}\n- profile_match_max_duration_ratio: {suggested_profile_match_max_duration_ratio}\n- start_threshold_w: {suggested_start_threshold_w} W\n- stop_threshold_w: {suggested_stop_threshold_w} W\n- end_energy_threshold: {suggested_end_energy_threshold} Wh\n- running_dead_zone: {suggested_running_dead_zone} s\n{suggested_reason}"
}
},
"detection_section": {
"name": "การตรวจจับและเกณฑ์กำลังไฟ",
"description": "กำหนดว่าเมื่อใดอุปกรณ์จะถือว่าเปิดหรือปิด รวมถึงเกณฑ์พลังงานและจังหวะเวลาของการเปลี่ยนสถานะ",
"data": {
"start_duration_threshold": "เริ่มระยะเวลา Debounce (s)",
"start_energy_threshold": "เริ่ม Energy Gate (Wh)",
"completion_min_seconds": "รันไทม์ขั้นต่ำที่เสร็จสมบูรณ์ (วินาที)",
"start_threshold_w": "เกณฑ์เริ่มต้น (W)",
"stop_threshold_w": "หยุดเกณฑ์ (W)",
"end_energy_threshold": "ประตูพลังงานสิ้นสุด (Wh)",
"running_dead_zone": "วิ่งโซนตาย (วินาที)",
"end_repeat_count": "สิ้นสุดการนับซ้ำ",
"min_off_gap": "ช่องว่างขั้นต่ำระหว่างรอบ (s)",
"sampling_interval": "ช่วงเวลาการสุ่มตัวอย่าง (s)"
},
"data_description": {
"start_duration_threshold": "เพิกเฉยต่อการเพิ่มพลังสั้นๆ ที่สั้นกว่าระยะเวลานี้ (วินาที) กรองการเพิ่มขึ้นอย่างรวดเร็วของบูต (เช่น 60W เป็นเวลา 2 วินาที) ก่อนเริ่มรอบจริง ค่าเริ่มต้น: 5 วินาที",
"start_energy_threshold": "วงจรจะต้องสะสมพลังงาน (Wh) มากเท่านี้เป็นอย่างน้อยในระหว่างระยะเริ่มต้นจึงจะได้รับการยืนยัน ค่าเริ่มต้น: 0.005 Wh.",
"completion_min_seconds": "รอบที่สั้นกว่านี้จะถูกทำเครื่องหมายว่า 'หยุดชะงัก' แม้ว่าจะเสร็จสิ้นตามธรรมชาติก็ตาม ค่าเริ่มต้น: 600 วินาที",
"start_threshold_w": "กำลังไฟฟ้าต้องสูงกว่าเกณฑ์นี้จึงจะเริ่มต้นวงจรได้ ตั้งค่าให้สูงกว่าพลังงานสแตนด์บายของคุณ ค่าเริ่มต้น: min_power + 1 W.",
"stop_threshold_w": "กำลังไฟฟ้าต้องต่ำกว่าเกณฑ์นี้จึงจะสิ้นสุดรอบได้ ตั้งค่าให้สูงกว่าศูนย์เพื่อหลีกเลี่ยงสัญญาณรบกวนที่ทำให้เกิดการสิ้นสุดที่ผิดพลาด ค่าเริ่มต้น: 0.6 * min_power",
"end_energy_threshold": "รอบการสิ้นสุดจะสิ้นสุดก็ต่อเมื่อพลังงานในหน้าต่าง Off-Delay สุดท้ายต่ำกว่าค่านี้ (Wh) ป้องกันการสิ้นสุดที่ผิดพลาดหากพลังงานผันผวนใกล้ศูนย์ ค่าเริ่มต้น: 0.05 Wh.",
"running_dead_zone": "หลังจากที่วงจรเริ่มต้นขึ้น ให้เพิกเฉยต่อกำลังที่ลดลงเป็นเวลาหลายวินาทีเพื่อป้องกันการตรวจจับปลายที่ผิดพลาดในระหว่างขั้นตอนการปั่นหมาดครั้งแรก ตั้งค่าเป็น 0 เพื่อปิดใช้งาน ค่าเริ่มต้น: 0 วินาที",
"end_repeat_count": "จำนวนครั้งที่ต้องเป็นไปตามเงื่อนไขการสิ้นสุด (กำลังต่ำกว่าเกณฑ์สำหรับ off_delay) ติดต่อกันก่อนที่จะสิ้นสุดรอบ ค่าที่สูงกว่าจะป้องกันการสิ้นสุดที่ผิดพลาดระหว่างการหยุดชั่วคราว ค่าเริ่มต้น: 1.",
"min_off_gap": "หากวงจรเริ่มต้นภายในไม่กี่วินาทีหลังจากรอบก่อนหน้าสิ้นสุดลง วงจรเหล่านั้นจะถูกรวมเข้าเป็นรอบเดียว",
"sampling_interval": "ช่วงเวลาการสุ่มตัวอย่างขั้นต่ำในหน่วยวินาที การอัปเดตที่เร็วกว่าอัตรานี้จะถูกละเว้น ค่าเริ่มต้น: 30 วินาที (2 วินาทีสำหรับเครื่องซักผ้า เครื่องซักผ้า-อบผ้า และเครื่องล้างจาน)"
}
},
"matching_section": {
"name": "การจับคู่โปรไฟล์และการเรียนรู้",
"description": "กำหนดว่า WashData จะจับคู่รอบที่กำลังทำงานกับโปรไฟล์ที่เรียนรู้ไว้อย่างเข้มงวดเพียงใด และจะขอคำติชมเมื่อใด",
"data": {
"profile_match_min_duration_ratio": "อัตราส่วนระยะเวลาการจับคู่ขั้นต่ำของโปรไฟล์ (0.1-1.0)",
"profile_match_interval": "ช่วงเวลาการจับคู่โปรไฟล์ (วินาที)",
"profile_match_threshold": "เกณฑ์การจับคู่โปรไฟล์",
"profile_unmatch_threshold": "เกณฑ์ไม่ตรงกันของโปรไฟล์",
"auto_label_confidence": "ความเชื่อมั่นป้ายกำกับอัตโนมัติ (0-1)",
"learning_confidence": "ข้อเสนอแนะ ขอความมั่นใจ (0-1)",
"suppress_feedback_notifications": "ระงับการแจ้งเตือนข้อเสนอแนะ",
"duration_tolerance": "ความอดทนต่อระยะเวลา (0-0.5)",
"smoothing_window": "หน้าต่างปรับให้เรียบ (ตัวอย่าง)",
"profile_duration_tolerance": "ความอดทนต่อระยะเวลาการจับคู่โปรไฟล์ (0-0.5)"
},
"data_description": {
"profile_match_min_duration_ratio": "อัตราส่วนระยะเวลาขั้นต่ำสำหรับการจับคู่โปรไฟล์ วงจรการทำงานต้องมีระยะเวลาอย่างน้อยเศษส่วนนี้จึงจะตรงกัน ล่าง = การจับคู่ก่อนหน้า ค่าเริ่มต้น: 0.50 (50%)",
"profile_match_interval": "ความถี่ (เป็นวินาที) ที่จะพยายามจับคู่โปรไฟล์ระหว่างรอบ ค่าที่ต่ำกว่าจะทำให้การตรวจจับเร็วขึ้นแต่ใช้ CPU มากกว่า ค่าเริ่มต้น: 300 วินาที (5 นาที)",
"profile_match_threshold": "คะแนนความคล้ายคลึงกัน DTW ขั้นต่ำ (0.0–1.0) ที่จำเป็นในการพิจารณาโปรไฟล์ที่ตรงกัน สูงกว่า = การจับคู่ที่เข้มงวดมากขึ้น ผลบวกลวงน้อยลง ค่าเริ่มต้น: 0.4",
"profile_unmatch_threshold": "คะแนนความคล้ายคลึงกัน DTW (0.0–1.0) ต่ำกว่าซึ่งโปรไฟล์ที่ตรงกันก่อนหน้านี้ถูกปฏิเสธ ควรต่ำกว่าเกณฑ์การจับคู่เพื่อป้องกันการกะพริบ ค่าเริ่มต้น: 0.35",
"auto_label_confidence": "ติดป้ายกำกับรอบโดยอัตโนมัติหรือสูงกว่าความเชื่อมั่นนี้เมื่อเสร็จสิ้น (0.0–1.0)",
"learning_confidence": "ความมั่นใจขั้นต่ำในการขอการยืนยันผู้ใช้ผ่านกิจกรรม (0.0–1.0)",
"suppress_feedback_notifications": "เมื่อเปิดใช้งาน WashData จะยังคงติดตามและขอคำติชมภายใน แต่จะไม่แสดงการแจ้งเตือนอย่างต่อเนื่องเพื่อขอให้คุณยืนยันรอบการทำงาน มีประโยชน์เมื่อตรวจพบรอบอย่างถูกต้องเสมอและคุณพบว่าข้อความแจ้งรบกวนสมาธิ",
"duration_tolerance": "ความคลาดเคลื่อนสำหรับการประมาณเวลาที่เหลืออยู่ระหว่างการวิ่ง (0.0–0.5 สอดคล้องกับ 050%)",
"smoothing_window": "จำนวนการอ่านค่ากำลังล่าสุดที่ใช้สำหรับการปรับให้เรียบโดยเฉลี่ยแบบเคลื่อนที่",
"profile_duration_tolerance": "ความคลาดเคลื่อนที่ใช้โดยการจับคู่โปรไฟล์สำหรับความแปรปรวนระยะเวลาทั้งหมด (0.0–0.5) ลักษณะการทำงานเริ่มต้น: ±25%"
}
},
"timing_section": {
"name": "เวลา การบำรุงรักษา และการดีบัก",
"description": "Watchdog การรีเซ็ตความคืบหน้า การบำรุงรักษาอัตโนมัติ และการแสดงเอนทิตีดีบัก",
"data": {
"watchdog_interval": "ช่วงเวลา Watchdog (วินาที)",
"no_update_active_timeout": "ไม่มีการอัปเดตหมดเวลา (s)",
"progress_reset_delay": "ความล่าช้าในการรีเซ็ตความคืบหน้า (วินาที)",
"auto_maintenance": "เปิดใช้งานการบำรุงรักษาอัตโนมัติ",
"expose_debug_entities": "เปิดเผยเอนทิตีการตรวจแก้จุดบกพร่อง",
"save_debug_traces": "บันทึกการติดตามการแก้ไขข้อบกพร่อง"
},
"data_description": {
"watchdog_interval": "วินาทีระหว่างการตรวจสอบสุนัขเฝ้าบ้านขณะวิ่ง ค่าเริ่มต้น: 5 วินาที คำเตือน: ตรวจสอบให้แน่ใจว่านี่สูงกว่าช่วงการอัปเดตเซ็นเซอร์ของคุณเพื่อหลีกเลี่ยงการหยุดที่ผิดพลาด (เช่น หากเซ็นเซอร์อัปเดตทุกๆ 60 วินาที ให้ใช้ 65 วินาทีขึ้นไป)",
"no_update_active_timeout": "สำหรับเซ็นเซอร์เผยแพร่เมื่อมีการเปลี่ยนแปลง: บังคับสิ้นสุดรอบการทำงานเท่านั้น หากไม่มีการอัปเดตมาถึงเป็นเวลาหลายวินาทีนี้ การทำเสร็จด้วยพลังงานต่ำยังคงใช้การหน่วงเวลาปิด",
"progress_reset_delay": "หลังจากรอบเสร็จสมบูรณ์ (100%) ให้รอสักครู่ก่อนที่จะรีเซ็ตความคืบหน้าเป็น 0% ค่าเริ่มต้น: 300 วินาที",
"auto_maintenance": "เปิดใช้งานการบำรุงรักษาอัตโนมัติ (ตัวอย่างการซ่อมแซม รวมชิ้นส่วน)",
"expose_debug_entities": "แสดงเซ็นเซอร์ขั้นสูง (Confidence, Phase, Ambiguity) สำหรับการดีบัก",
"save_debug_traces": "จัดเก็บข้อมูลการจัดอันดับและการติดตามพลังงานโดยละเอียดไว้ในประวัติ (เพิ่มการใช้พื้นที่เก็บข้อมูล)"
}
},
"anti_wrinkle_section": {
"name": "แผงป้องกันรอยยับ (เครื่องอบผ้า)",
"description": "ละเว้นการหมุนถังซักหลังจบรอบเพื่อป้องกันรอบหลอน ใช้ได้กับเครื่องอบผ้า / เครื่องซักอบเท่านั้น",
"data": {
"anti_wrinkle_enabled": "แผ่นป้องกันริ้วรอย (เฉพาะเครื่องอบผ้า)",
"anti_wrinkle_max_power": "พลังต่อต้านริ้วรอยสูงสุด (W)",
"anti_wrinkle_max_duration": "ระยะเวลาสูงสุดในการต่อต้านริ้วรอย (s)",
"anti_wrinkle_exit_power": "กำลังขับทางออกป้องกันริ้วรอย (W)"
},
"data_description": {
"anti_wrinkle_enabled": "ไม่ต้องสนใจการหมุนถังซักที่ใช้พลังงานต่ำในช่วงสั้นๆ หลังจากสิ้นสุดรอบการซัก เพื่อป้องกันรอบการหยุดทำงาน (เฉพาะเครื่องอบผ้า/เครื่องซักผ้า-เครื่องอบผ้าเท่านั้น)",
"anti_wrinkle_max_power": "การระเบิดที่หรือต่ำกว่ากำลังนี้ถือเป็นการหมุนต่อต้านริ้วรอยแทนรอบใหม่ ใช้ได้เฉพาะเมื่อเปิดใช้งาน Anti-Wrinkle Shield เท่านั้น",
"anti_wrinkle_max_duration": "ความยาวระเบิดสูงสุดเพื่อใช้เป็นการหมุนต่อต้านริ้วรอย ใช้ได้เฉพาะเมื่อเปิดใช้งาน Anti-Wrinkle Shield เท่านั้น",
"anti_wrinkle_exit_power": "หากพลังงานลดลงต่ำกว่าระดับนี้ ให้ออกจากโปรแกรมต่อต้านริ้วรอยทันที (ปิดจริง) ใช้ได้เฉพาะเมื่อเปิดใช้งาน Anti-Wrinkle Shield เท่านั้น"
}
},
"delay_start_section": {
"name": "การตรวจจับการเริ่มต้นล่าช้า",
"description": "ถือว่าสถานะสแตนด์บายกำลังต่ำที่ต่อเนื่องเป็น 'กำลังรอการเริ่มต้น' จนกว่ารอบจะเริ่มทำงานจริง",
"data": {
"delay_start_detect_enabled": "เปิดใช้งานการตรวจจับการเริ่มต้นล่าช้า",
"delay_confirm_seconds": "การเริ่มต้นล่าช้า: เวลายืนยันโหมดสแตนด์บาย (วินาที)",
"delay_timeout_hours": "การเริ่มต้นล่าช้า: เวลารอสูงสุด (h)"
},
"data_description": {
"delay_start_detect_enabled": "เมื่อเปิดใช้งาน ตรวจพบการระบายพลังงานต่ำที่พุ่งสูงขึ้นสั้นๆ ตามมาด้วยพลังงานสแตนด์บายอย่างต่อเนื่อง จะถูกตรวจพบว่าเป็นการสตาร์ทล่าช้า เซ็นเซอร์สถานะแสดง 'กำลังรอการเริ่มต้น' ในระหว่างความล่าช้า ไม่มีการติดตามเวลาของโปรแกรมหรือความคืบหน้าจนกว่ารอบจะเริ่มต้นจริง จำเป็นต้องตั้งค่า start_threshold_w เหนือกำลังขัดขวางการเดรน",
"delay_confirm_seconds": "กำลังไฟต้องคงอยู่ระหว่างเกณฑ์หยุด (W) และเกณฑ์เริ่มต้น (W) เป็นเวลานี้ก่อนที่ WashData จะเข้าสู่สถานะ 'กำลังรอการเริ่มต้น' ช่วยกรองยอดพุ่งสั้นๆ ระหว่างการเลื่อนเมนู ค่าเริ่มต้น: 60 วินาที",
"delay_timeout_hours": "หมดเวลาเพื่อความปลอดภัย: หากเครื่องยังคงอยู่ใน 'กำลังรอการเริ่มต้น' หลังจากผ่านไปหลายชั่วโมง WashData จะรีเซ็ตเป็นปิด ค่าเริ่มต้น: 8 ชม."
}
},
"external_triggers_section": {
"name": "ทริกเกอร์ภายนอก ประตู และการหยุดชั่วคราว",
"description": "เซ็นเซอร์ทริกเกอร์สิ้นสุดภายนอกแบบเลือกได้ เซ็นเซอร์ประตูสำหรับตรวจจับการหยุดชั่วคราว/สถานะสะอาด และสวิตช์ตัดไฟเมื่อหยุดชั่วคราว",
"data": {
"external_end_trigger_enabled": "เปิดใช้งานทริกเกอร์การสิ้นสุดรอบภายนอก",
"external_end_trigger": "เซ็นเซอร์ปลายรอบภายนอก",
"external_end_trigger_inverted": "สลับลอจิกทริกเกอร์ (ทริกเกอร์เปิดปิด)",
"door_sensor_entity": "เซ็นเซอร์ประตู",
"pause_cuts_power": "ตัดไฟเมื่อหยุดชั่วคราว",
"switch_entity": "สวิตช์เอนทิตี (สำหรับการหยุดตัดไฟชั่วคราว)",
"notify_unload_delay_minutes": "การแจ้งเตือนการรอซักรีดล่าช้า (นาที)"
},
"data_description": {
"external_end_trigger_enabled": "เปิดใช้งานการตรวจสอบเซ็นเซอร์ไบนารีภายนอกเพื่อกระตุ้นให้รอบการทำงานเสร็จสมบูรณ์",
"external_end_trigger": "เลือกเอนทิตีเซ็นเซอร์ไบนารี เมื่อเซ็นเซอร์นี้ทริกเกอร์ วงจรปัจจุบันจะสิ้นสุดด้วยสถานะ 'เสร็จสมบูรณ์'",
"external_end_trigger_inverted": "ตามค่าเริ่มต้น ทริกเกอร์จะเริ่มทำงานเมื่อเซ็นเซอร์เปิด เลือกช่องนี้เพื่อเริ่มทำงานเมื่อเซ็นเซอร์ปิดแทน",
"door_sensor_entity": "เซ็นเซอร์ไบนารี่เสริมสำหรับประตูเครื่องจักร (เปิด = เปิด, ปิด = ปิด) เมื่อประตูเปิดออกระหว่างโปรแกรมที่ใช้งานอยู่ WashData จะยืนยันโปรแกรมดังกล่าวว่าหยุดชั่วคราวโดยเจตนา หลังจากสิ้นสุดรอบ หากประตูยังคงปิดอยู่ สถานะจะเปลี่ยนเป็น 'ทำความสะอาด' จนกว่าประตูจะเปิด หมายเหตุ: การปิดประตูจะไม่กลับมาทำงานต่อโดยอัตโนมัติตามรอบที่หยุดชั่วคราว - การกลับมาทำงานต่อจะต้องถูกกระตุ้นด้วยตนเองผ่านปุ่ม ทำงานต่อรอบการทำงานหรือบริการ",
"pause_cuts_power": "เมื่อหยุดชั่วคราวผ่านปุ่มหยุดรอบชั่วคราวหรือบริการ ให้ปิดเอนทิตีสวิตช์ที่กำหนดค่าไว้ด้วย จะมีผลเฉพาะเมื่อมีการกำหนดค่าเอนทิตีสวิตช์สำหรับอุปกรณ์นี้",
"switch_entity": "เอนทิตีสวิตช์เพื่อสลับเมื่อหยุดชั่วคราวหรือดำเนินการต่อ จำเป็นเมื่อเปิดใช้งาน 'ตัดไฟเมื่อหยุดชั่วคราว'",
"notify_unload_delay_minutes": "ส่งการแจ้งเตือนผ่านช่องทางแจ้งเตือนเมื่อสิ้นสุดรอบและไม่ได้เปิดประตูเป็นเวลาหลายนาที (ต้องใช้เซ็นเซอร์ประตู) ตั้งค่าเป็น 0 เพื่อปิดใช้งาน ค่าเริ่มต้น: 60 นาที"
}
},
"pump_section": {
"name": "ตัวเฝ้าติดตามปั๊ม",
"description": "ใช้กับประเภทอุปกรณ์ปั๊มเท่านั้น จะส่งเหตุการณ์หากรอบการทำงานของปั๊มเกินระยะเวลานี้",
"data": {
"pump_stuck_duration": "เกณฑ์การแจ้งเตือนปั๊มติด (s) (เฉพาะปั๊ม)"
},
"data_description": {
"pump_stuck_duration": "หากรอบปั๊มยังคงทำงานอยู่หลังจากผ่านไปหลายวินาทีนี้ เหตุการณ์ ha_washdata_pump_stuck จะทำงานหนึ่งครั้ง ใช้สิ่งนี้เพื่อตรวจจับมอเตอร์ที่ติดขัด (การทำงานของปั๊มบ่อโดยทั่วไปคือต่ำกว่า 60 วินาที) ค่าเริ่มต้น: 1800 วินาที (30 นาที) ประเภทอุปกรณ์ปั๊มเท่านั้น"
}
},
"device_link_section": {
"name": "ลิงค์อุปกรณ์",
"description": "คุณสามารถเลือกเชื่อมโยงอุปกรณ์ WashData นี้กับอุปกรณ์ Home Assistant ที่มีอยู่ (เช่น ปลั๊กอัจฉริยะหรือตัวอุปกรณ์เอง) จากนั้นอุปกรณ์ WashData จะแสดงเป็น \"เชื่อมต่อผ่าน\" อุปกรณ์นั้น เว้นว่างไว้เพื่อให้ WashData เป็นอุปกรณ์แบบสแตนด์อโลน",
"data": {
"linked_device": "อุปกรณ์ที่เชื่อมโยง"
},
"data_description": {
"linked_device": "เลือกอุปกรณ์ที่จะเชื่อมต่อ WashData สิ่งนี้จะเพิ่มการอ้างอิง 'เชื่อมต่อผ่าน' ในรีจิสทรีอุปกรณ์ WashData จะเก็บการ์ดอุปกรณ์และเอนทิตีของตัวเอง ล้างการเลือกเพื่อลบลิงก์"
}
}
}
},
"diagnostics": {
"title": "การวินิจฉัยและการบำรุงรักษา",
"description": "ดำเนินการบำรุงรักษา เช่น การรวมวงจรที่กระจัดกระจายหรือการย้ายข้อมูลที่เก็บไว้\n\n**การใช้พื้นที่เก็บข้อมูล**\n\n- ขนาดไฟล์: {file_size_kb} KB\n- รอบ: {cycle_count}\n- โปรไฟล์: {profile_count}\n- การติดตามการแก้ไขข้อบกพร่อง: {debug_count}",
"menu_options": {
"reprocess_history": "การบำรุงรักษา: ประมวลผลใหม่และเพิ่มประสิทธิภาพข้อมูล",
"clear_debug_data": "ล้างข้อมูลการดีบัก (เพิ่มพื้นที่ว่าง)",
"wipe_history": "ล้างข้อมูลทั้งหมดสำหรับอุปกรณ์นี้ (ไม่สามารถย้อนกลับได้)",
"export_import": "ส่งออก/นำเข้า JSON ด้วยการตั้งค่า (คัดลอก/วาง)",
"menu_back": "← ย้อนกลับ"
}
},
"clear_debug_data": {
"title": "ล้างข้อมูลการดีบัก",
"description": "คุณแน่ใจหรือไม่ว่าต้องการลบการติดตามการแก้ไขข้อบกพร่องที่เก็บไว้ทั้งหมด การดำเนินการนี้จะทำให้มีพื้นที่ว่างมากขึ้น แต่จะลบข้อมูลการจัดอันดับโดยละเอียดออกจากรอบที่ผ่านมา"
},
"manage_cycles": {
"title": "จัดการรอบ",
"description": "รอบล่าสุด:\n{recent_cycles}",
"menu_options": {
"auto_label_cycles": "ติดป้ายกำกับรอบเก่าโดยอัตโนมัติ",
"select_cycle_to_label": "วงจรเฉพาะของฉลาก",
"select_cycle_to_delete": "ลบไซเคิล",
"interactive_editor": "ผสาน / แยกตัวแก้ไขเชิงโต้ตอบ",
"trim_cycle_select": "ข้อมูลรอบการตัดแต่ง",
"menu_back": "← ย้อนกลับ"
}
},
"manage_cycles_empty": {
"title": "จัดการรอบ",
"description": "ยังไม่มีการบันทึกรอบ",
"menu_options": {
"auto_label_cycles": "ติดป้ายกำกับรอบเก่าโดยอัตโนมัติ",
"menu_back": "← ย้อนกลับ"
}
},
"manage_profiles": {
"title": "จัดการโปรไฟล์",
"description": "สรุปโปรไฟล์:\n{profile_summary}",
"menu_options": {
"create_profile": "สร้างโปรไฟล์ใหม่",
"edit_profile": "แก้ไข/เปลี่ยนชื่อโปรไฟล์",
"delete_profile_select": "ลบโปรไฟล์",
"profile_stats": "สถิติโปรไฟล์",
"cleanup_profile": "ล้างประวัติ - กราฟ & ลบ",
"assign_profile_phases_select": "กำหนดช่วงเฟส",
"menu_back": "← ย้อนกลับ"
}
},
"manage_profiles_empty": {
"title": "จัดการโปรไฟล์",
"description": "ยังไม่มีการสร้างโปรไฟล์",
"menu_options": {
"create_profile": "สร้างโปรไฟล์ใหม่",
"menu_back": "← ย้อนกลับ"
}
},
"manage_phase_catalog": {
"title": "จัดการแคตตาล็อกเฟส",
"description": "แค็ตตาล็อกเฟส (ค่าเริ่มต้นสำหรับอุปกรณ์นี้ + เฟสที่กำหนดเอง):\n{phase_summary}",
"menu_options": {
"phase_catalog_create": "สร้างเฟสใหม่",
"phase_catalog_edit_select": "แก้ไขเฟส",
"phase_catalog_delete": "ลบเฟส",
"menu_back": "← ย้อนกลับ"
}
},
"phase_catalog_create": {
"title": "สร้างเฟสที่กำหนดเอง",
"description": "สร้างชื่อเฟสและคำอธิบายแบบกำหนดเอง และเลือกประเภทอุปกรณ์ที่จะนำไปใช้กับ",
"data": {
"target_device_type": "ประเภทอุปกรณ์เป้าหมาย",
"phase_name": "ชื่อเฟส",
"phase_description": "คำอธิบายเฟส"
}
},
"phase_catalog_edit_select": {
"title": "แก้ไขเฟสที่กำหนดเอง",
"description": "เลือกเฟสที่กำหนดเองเพื่อแก้ไข",
"data": {
"phase_name": "เฟสที่กำหนดเอง"
}
},
"phase_catalog_edit": {
"title": "แก้ไขเฟสที่กำหนดเอง",
"description": "ขั้นตอนการแก้ไข: {phase_name}",
"data": {
"phase_name": "ชื่อเฟส",
"phase_description": "คำอธิบายเฟส"
}
},
"phase_catalog_delete": {
"title": "ลบเฟสแบบกำหนดเอง",
"description": "เลือกเฟสแบบกำหนดเองที่จะลบ ช่วงที่กำหนดโดยใช้ระยะนี้จะถูกลบออก",
"data": {
"phase_name": "เฟสที่กำหนดเอง"
}
},
"assign_profile_phases": {
"title": "กำหนดช่วงเฟส",
"description": "การแสดงตัวอย่างเฟสสำหรับโปรไฟล์: **{profile_name}**\n\n{timeline_svg}\n\n**ช่วงปัจจุบัน:**\n{current_ranges}\n\nใช้การดำเนินการด้านล่างเพื่อเพิ่ม แก้ไข ลบ หรือบันทึกช่วง",
"menu_options": {
"assign_profile_phases_add": "เพิ่มช่วงเฟส",
"assign_profile_phases_edit_select": "แก้ไขช่วงเฟส",
"assign_profile_phases_delete": "ลบช่วงเฟส",
"phase_ranges_clear": "ล้างทุกช่วง",
"assign_profile_phases_auto_detect": "ตรวจจับเฟสอัตโนมัติ",
"phase_ranges_save": "บันทึกและส่งคืน",
"menu_back": "← ย้อนกลับ"
}
},
"assign_profile_phases_add": {
"title": "เพิ่มช่วงเฟส",
"description": "เพิ่มช่วงหนึ่งเฟสให้กับร่างปัจจุบัน",
"data": {
"phase_name": "เฟส",
"start_min": "เริ่มต้นนาที",
"end_min": "นาทีสุดท้าย"
}
},
"assign_profile_phases_edit_select": {
"title": "แก้ไขช่วงเฟส",
"description": "เลือกช่วงที่จะแก้ไข",
"data": {
"range_index": "ช่วงเฟส"
}
},
"assign_profile_phases_edit": {
"title": "แก้ไขช่วงเฟส",
"description": "อัปเดตช่วงเฟสที่เลือก",
"data": {
"phase_name": "เฟส",
"start_min": "เริ่มต้นนาที",
"end_min": "นาทีสุดท้าย"
}
},
"assign_profile_phases_delete": {
"title": "ลบช่วงเฟส",
"description": "เลือกช่วงที่จะลบออกจากแบบร่าง",
"data": {
"range_index": "ช่วงเฟส"
}
},
"assign_profile_phases_auto_detect": {
"title": "เฟสที่ตรวจพบอัตโนมัติ",
"description": "โปรไฟล์: **{profile_name}**\n\n{timeline_svg}\n\n**ตรวจพบเฟส {detected_count} เฟสโดยอัตโนมัติ** เลือกการดำเนินการด้านล่าง",
"data": {
"action": "การกระทำ"
}
},
"assign_profile_phases_auto_detect_name": {
"title": "ชื่อเฟสที่ตรวจพบ",
"description": "โปรไฟล์: **{profile_name}**\n\n**ตรวจพบ {detected_count} เฟส:**\n{ranges_summary}\n\nกำหนดชื่อให้กับแต่ละเฟส"
},
"assign_profile_phases_select": {
"title": "กำหนดช่วงเฟส",
"description": "เลือกโปรไฟล์เพื่อกำหนดค่าช่วงเฟส",
"data": {
"profile": "โปรไฟล์"
}
},
"profile_stats": {
"title": "สถิติโปรไฟล์",
"description": "{stats_table}"
},
"create_profile": {
"title": "สร้างโปรไฟล์ใหม่",
"description": "สร้างโปรไฟล์ใหม่ด้วยตนเองหรือจากรอบที่ผ่านมา\n\nตัวอย่างชื่อโปรไฟล์: 'ผ้าฝ้าย 40°C', 'Eco', 'Quick Wash', 'ผ้าฝ้าย + ซักแห้งตู้'\n\n**สิ่งที่เครื่องจับคู่ใช้:** รูปแบบการใช้พลังงาน ระยะเวลารวมของวงจร และพลังงานทั้งหมด มันไม่ได้อ่านการตั้งค่าอุณหภูมิหรือการหมุนโดยตรง\n\n**โปรไฟล์ที่จะตรวจจับอัตโนมัติได้อย่างน่าเชื่อถือ:** โปรแกรมที่มีระยะเวลาหรือรูปแบบพลังงานที่แตกต่างกันอย่างชัดเจน - เช่น การซักด่วน 20 นาที เทียบกับ รอบผ้าฝ้าย 3 ชั่วโมง หรือรอบการซักอย่างเดียว เทียบกับการซัก+ซักแห้งแบบผสม (ซึ่งโดยทั่วไปจะใช้เวลานานกว่า 2-3×)\n\n**โปรไฟล์ที่อาจจำเป็นต้องเลือกด้วยตนเอง:** ตัวแปรของโปรแกรมเดียวกันที่แตกต่างกันเฉพาะอุณหภูมิหรือความเร็วในการปั่น (เช่น คอตตอน 40°C กับคอตตอน 60°C) มักจะให้พลังงานรูปร่างคล้ายกัน ระบบจะยังคงพยายามแยกแยะความแตกต่างและเรียนรู้จากการแก้ไขของคุณเมื่อเวลาผ่านไป แต่คาดว่าจะยืนยันการจับคู่ด้วยตนเองในตอนแรก\n\n**เคล็ดลับสำหรับเครื่องซักผ้า-เครื่องอบผ้า:** สร้างโปรไฟล์แยกต่างหากสำหรับการซักอย่างเดียวและการซัก+ซักแห้ง - ระยะเวลาและพลังงานที่แตกต่างกันมากเพียงพอสำหรับการตรวจจับอัตโนมัติที่เชื่อถือได้",
"data": {
"profile_name": "ชื่อโปรไฟล์",
"reference_cycle": "วงจรอ้างอิง (ไม่บังคับ)",
"manual_duration": "ระยะเวลาด้วยตนเอง (นาที)"
}
},
"edit_profile": {
"title": "แก้ไขโปรไฟล์",
"description": "เลือกโปรไฟล์ที่จะเปลี่ยนชื่อ",
"data": {
"profile": "โปรไฟล์"
}
},
"rename_profile": {
"title": "แก้ไขรายละเอียดโปรไฟล์",
"description": "โปรไฟล์ปัจจุบัน: {current_name}",
"data": {
"new_name": "ชื่อโปรไฟล์",
"manual_duration": "ระยะเวลาด้วยตนเอง (นาที)"
}
},
"delete_profile_select": {
"title": "ลบโปรไฟล์",
"description": "เลือกโปรไฟล์ที่จะลบ",
"data": {
"profile": "โปรไฟล์"
}
},
"delete_profile_confirm": {
"title": "ยืนยันการลบโปรไฟล์",
"description": "⚠️ การดำเนินการนี้จะลบโปรไฟล์อย่างถาวร: {profile_name}",
"data": {
"unlabel_cycles": "ลบฉลากออกจากรอบการใช้โปรไฟล์นี้"
}
},
"auto_label_cycles": {
"title": "ติดป้ายกำกับรอบเก่าโดยอัตโนมัติ",
"description": "พบทั้งหมด {total_count} รอบ โปรไฟล์: {profiles}",
"data": {
"confidence_threshold": "ความเชื่อมั่นขั้นต่ำ (0.50-0.95)"
}
},
"select_cycle_to_label": {
"title": "เลือกวนไปที่ป้ายกำกับ",
"description": "✓ = เสร็จสิ้น ⚠ = ดำเนินการต่อ ✗ = ถูกขัดจังหวะ",
"data": {
"cycle_id": "วงจร"
}
},
"select_cycle_to_delete": {
"title": "ลบไซเคิล",
"description": "⚠️การดำเนินการนี้จะลบรอบที่เลือกอย่างถาวร",
"data": {
"cycle_id": "วนรอบเพื่อลบ"
}
},
"label_cycle": {
"title": "วงจรฉลาก",
"description": "{cycle_info}",
"data": {
"profile_name": "โปรไฟล์",
"new_profile_name": "ชื่อโปรไฟล์ใหม่ (หากกำลังสร้าง)"
}
},
"post_process": {
"title": "ประวัติกระบวนการ (รวม/แยก)",
"description": "ล้างประวัติรอบการทำงานโดยการรวมการวิ่งที่กระจัดกระจายและแยกรอบการผสานที่ไม่ถูกต้องภายในกรอบเวลา ป้อนจำนวนชั่วโมงเพื่อดูย้อนหลัง (ใช้ทั้งหมด 999999)",
"data": {
"time_range": "กรอบเวลามองย้อนกลับ (ชั่วโมง)",
"gap_seconds": "ผสาน/แยกช่องว่าง (วินาที)"
},
"data_description": {
"time_range": "จำนวนชั่วโมงในการสแกนหารอบที่กระจัดกระจายเพื่อรวมเข้าด้วยกัน ใช้ 999999 เพื่อประมวลผลข้อมูลประวัติทั้งหมด",
"gap_seconds": "เกณฑ์ในการตัดสินใจแยกและรวม ช่องว่างที่สั้นกว่านี้ถูกรวมเข้าด้วยกัน ช่องว่างที่ยาวกว่านี้จะถูกแยกออก ลดค่านี้ลงเพื่อบังคับให้มีการแยกวงจรที่ผสานไม่ถูกต้อง"
}
},
"cleanup_profile": {
"title": "ล้างประวัติ - เลือกโปรไฟล์",
"description": "เลือกโปรไฟล์เพื่อแสดงภาพ ซึ่งจะสร้างกราฟที่แสดงรอบที่ผ่านมาทั้งหมดสำหรับโปรไฟล์นี้เพื่อช่วยระบุค่าผิดปกติ",
"data": {
"profile": "โปรไฟล์"
}
},
"cleanup_select": {
"title": "ล้างประวัติ - กราฟ & ลบ",
"description": "![กราฟ]({graph_url})\n\n**การแสดงภาพ {profile_name}**\n\nกราฟแสดงแต่ละรอบเป็นเส้นสี ระบุค่าผิดปกติ (เส้นที่อยู่ไกลจากกลุ่ม) และจับคู่สีในรายการด้านล่างเพื่อลบออก\n\n**เลือกรอบที่จะลบอย่างถาวร:**",
"data": {
"cycles_to_delete": "รอบที่จะลบ (ตรวจสอบสีที่ตรงกัน)"
}
},
"interactive_editor": {
"title": "ผสาน / แยกตัวแก้ไขเชิงโต้ตอบ",
"description": "เลือกการดำเนินการโดยเจ้าหน้าที่เพื่อดำเนินการกับประวัติรอบเดือนของคุณ",
"menu_options": {
"editor_split": "แยกวงจร (ค้นหาช่องว่าง)",
"editor_merge": "ผสานวงจร (เข้าร่วมส่วนย่อย)",
"editor_delete": "ลบไซเคิล",
"menu_back": "← ย้อนกลับ"
}
},
"editor_select": {
"title": "เลือก รอบ",
"description": "เลือกรอบที่จะประมวลผล\n\n{info_text}",
"data": {
"selected_cycles": "รอบ"
}
},
"editor_configure": {
"title": "กำหนดค่าและนำไปใช้",
"description": "{preview_md}",
"data": {
"confirm_action": "การกระทำ",
"merged_profile": "โปรไฟล์ผลลัพธ์",
"new_profile_name": "ชื่อโปรไฟล์ใหม่",
"confirm_commit": "ใช่ ฉันยืนยันการดำเนินการนี้",
"segment_0_profile": "ส่วนที่ 1 โปรไฟล์",
"segment_1_profile": "ส่วนที่ 2 โปรไฟล์",
"segment_2_profile": "ส่วนที่ 3 โปรไฟล์",
"segment_3_profile": "ส่วนที่ 4 โปรไฟล์",
"segment_4_profile": "ส่วนที่ 5 โปรไฟล์",
"segment_5_profile": "ส่วนที่ 6 โปรไฟล์",
"segment_6_profile": "ส่วนที่ 7 โปรไฟล์",
"segment_7_profile": "ส่วนที่ 8 โปรไฟล์",
"segment_8_profile": "ส่วนที่ 9 โปรไฟล์",
"segment_9_profile": "ส่วนที่ 10 โปรไฟล์"
}
},
"editor_split_params": {
"title": "การกำหนดค่าแบบแยกส่วน",
"description": "ปรับความไวสำหรับการแยกรอบนี้ ช่องว่างที่ไม่ได้ใช้งานใด ๆ ที่นานกว่านี้จะทำให้เกิดการแตกแยก",
"data": {
"split_mode": "วิธีการแยก"
}
},
"editor_split_auto_params": {
"title": "การกำหนดค่าการแยกอัตโนมัติ",
"description": "ปรับความไวสำหรับการแยกรอบนี้ ช่องว่างช่วงไม่มีการทำงานที่นานกว่านี้จะทำให้เกิดการแยก",
"data": {
"min_gap_seconds": "เกณฑ์ช่องว่างการแยก (วินาที)"
}
},
"editor_split_manual_params": {
"title": "การประทับเวลาการแยกด้วยตนเอง",
"description": "{preview_md}หน้าต่างรอบ: **{cycle_start_wallclock} → {cycle_end_wallclock}** ในวันที่ {cycle_date}.\n\nป้อนการประทับเวลาการแยกอย่างน้อยหนึ่งรายการ (`HH:MM` หรือ `HH:MM:SS`) หนึ่งรายการต่อบรรทัด รอบจะถูกตัดที่การประทับเวลาแต่ละรายการ — การประทับเวลา N รายการจะได้ N+1 ช่วง.",
"data": {
"split_timestamps": "เวลาแยกรอบ"
}
},
"reprocess_history": {
"title": "การบำรุงรักษา: ประมวลผลใหม่และเพิ่มประสิทธิภาพข้อมูล",
"description": "ดำเนินการทำความสะอาดข้อมูลประวัติอย่างล้ำลึก:\n1. ตัดการอ่านค่าพลังงานเป็นศูนย์ (เงียบ)\n2. แก้ไขเวลา/ระยะเวลาของรอบ\n3. คำนวณแบบจำลองทางสถิติทั้งหมดใหม่ (ซองจดหมาย)\n\n**เรียกใช้สิ่งนี้เพื่อแก้ไขปัญหาข้อมูลหรือใช้อัลกอริทึมใหม่**"
},
"wipe_history": {
"title": "ล้างประวัติ (การทดสอบเท่านั้น)",
"description": "⚠️การดำเนินการนี้จะลบรอบและโปรไฟล์ที่เก็บไว้ทั้งหมดสำหรับอุปกรณ์นี้อย่างถาวร สิ่งนี้ไม่สามารถยกเลิกได้!"
},
"export_import": {
"title": "ส่งออก/นำเข้า JSON",
"description": "คัดลอก/วางรอบ โปรไฟล์ และการตั้งค่าสำหรับอุปกรณ์นี้ ส่งออกด้านล่างหรือวาง JSON เพื่อนำเข้า",
"data": {
"mode": "การกระทำ",
"json_payload": "กำหนดค่า JSON ให้เสร็จสมบูรณ์"
},
"data_description": {
"mode": "เลือกส่งออกเพื่อคัดลอกข้อมูลและการตั้งค่าปัจจุบัน หรือนำเข้าเพื่อวางข้อมูลที่ส่งออกจากอุปกรณ์ WashData อื่น",
"json_payload": "สำหรับการส่งออก: คัดลอก JSON นี้ (รวมถึงรอบ โปรไฟล์ และการตั้งค่าที่ปรับแต่งทั้งหมด) สำหรับการนำเข้า: วาง JSON ที่ส่งออกจาก WashData"
}
},
"record_cycle": {
"title": "บันทึกวงจร",
"description": "บันทึกรอบการทำงานด้วยตนเองเพื่อสร้างโปรไฟล์ที่สะอาดปราศจากการรบกวน\n\nสถานะ: **{status}**\nระยะเวลา: {duration} วิ\nตัวอย่าง: {samples}",
"menu_options": {
"record_refresh": "รีเฟรชสถานะ",
"record_stop": "หยุดการบันทึก (บันทึกและประมวลผล)",
"record_start": "เริ่มการบันทึกใหม่",
"record_process": "ประมวลผลการบันทึกครั้งล่าสุด (ตัดแต่งและบันทึก)",
"record_discard": "ละทิ้งการบันทึกครั้งล่าสุด",
"menu_back": "← ย้อนกลับ"
}
},
"record_process": {
"title": "การบันทึกกระบวนการ",
"description": "![กราฟ]({graph_url})\n\n**กราฟแสดงการบันทึกแบบ Raw** สีฟ้า = เก็บ สีแดง = เสนอการตัดทอน\n*กราฟเป็นแบบคงที่และไม่อัปเดตตามการเปลี่ยนแปลงแบบฟอร์ม*\n\nหยุดการบันทึกแล้ว การตัดแต่งจะสอดคล้องกับอัตราการสุ่มตัวอย่างที่ตรวจพบ (~{sampling_rate}s)\n\nระยะเวลาดิบ: {duration} วินาที\nตัวอย่าง: {samples}",
"data": {
"head_trim": "ตัดแต่งเริ่มต้น (วินาที)",
"tail_trim": "สิ้นสุดการตัดแต่ง (วินาที)",
"save_mode": "บันทึกปลายทาง",
"profile_name": "ชื่อโปรไฟล์"
}
},
"learning_feedbacks": {
"title": "ผลตอบรับการเรียนรู้",
"description": "ข้อเสนอแนะที่รอดำเนินการ: {count}\n\n{pending_table}\n\nเลือกคำขอตรวจสอบรอบการทำงานเพื่อดำเนินการ",
"menu_options": {
"learning_feedbacks_pick": "ตรวจสอบข้อเสนอแนะที่รอดำเนินการหนึ่งรายการ",
"learning_feedbacks_dismiss_all": "ละทิ้งข้อเสนอแนะที่รอดำเนินการทั้งหมด",
"menu_back": "← ย้อนกลับ"
}
},
"learning_feedbacks_pick": {
"title": "เลือกข้อเสนอแนะเพื่อทบทวน",
"description": "เลือกคำขอทบทวนรอบที่จะเปิด",
"data": {
"selected_feedback": "เลือกรอบที่จะทบทวน"
}
},
"learning_feedbacks_empty": {
"title": "ผลตอบรับการเรียนรู้",
"description": "ไม่พบคำขอความคิดเห็นที่รอดำเนินการ",
"menu_options": {
"menu_back": "← ย้อนกลับ"
}
},
"learning_feedbacks_dismiss_all": {
"title": "ยกเลิกข้อเสนอแนะที่รอดำเนินการทั้งหมด",
"description": "คุณกำลังจะยกเลิกคำขอข้อเสนอแนะที่รอดำเนินการ **{count}** รายการ รอบที่ถูกยกเลิกจะยังคงอยู่ในประวัติของคุณ แต่จะไม่ส่งสัญญาณการเรียนรู้ใหม่ การดำเนินการนี้ไม่สามารถย้อนกลับได้\n\n✅ ทำเครื่องหมายในช่องด้านล่างแล้วคลิก **ส่ง** เพื่อยกเลิกทั้งหมด\n❌ ปล่อยว่างไว้โดยไม่เลือกแล้วคลิก **ส่ง** เพื่อยกเลิกและย้อนกลับ",
"data": {
"confirm_dismiss_all": "ยืนยัน: ละทิ้งคำขอข้อเสนอแนะที่รอดำเนินการทั้งหมด"
}
},
"resolve_feedback": {
"title": "แก้ไขคำติชม",
"description": "{comparison_img}{candidates_table}\n**โปรไฟล์ที่ตรวจพบ**: {detected_profile} ({confidence_pct}%)\n**ระยะเวลาโดยประมาณ**: {est_duration_min} นาที\n**ระยะเวลาจริง**: {act_duration_min} นาที\n\n__เลือกการกระทำด้านล่าง:__",
"data": {
"action": "คุณอยากจะทำอะไร?",
"corrected_profile": "โปรแกรมที่ถูกต้อง (ถ้าแก้ไข)",
"corrected_duration": "แก้ไขระยะเวลาเป็นวินาที (หากแก้ไข)"
}
},
"trim_cycle_select": {
"title": "ทริมวงจร - เลือกวงจร",
"description": "เลือกรอบที่จะตัดแต่ง ✓ = เสร็จสิ้น ⚠ = ดำเนินการต่อ ✗ = ถูกขัดจังหวะ",
"data": {
"cycle_id": "วงจร"
}
},
"trim_cycle": {
"title": "วงจรตัดแต่ง",
"description": "หน้าต่างปัจจุบัน: {trim_summary}\n\n{trim_svg}",
"data": {
"action": "การกระทำ"
}
},
"trim_cycle_start": {
"title": "ตั้งค่าเริ่มต้นการตัดแต่ง",
"description": "กรอบเวลาวงจร: {cycle_start_wallclock} → {cycle_end_wallclock}\n\nการเริ่มต้นปัจจุบัน: **{current_wallclock}** (+{current_offset_min} นาทีจากการเริ่มต้นรอบ)\n\nเลือกเวลาเริ่มต้นใหม่โดยใช้ตัวเลือกนาฬิกาด้านล่าง",
"data": {
"trim_start_time": "เวลาเริ่มต้นใหม่",
"trim_start_min": "เริ่มต้นใหม่ (นาทีจากการเริ่มต้นรอบ)"
}
},
"trim_cycle_end": {
"title": "ตั้งค่าการสิ้นสุดการตัดแต่ง",
"description": "กรอบเวลาวงจร: {cycle_start_wallclock} → {cycle_end_wallclock}\n\nสิ้นสุดปัจจุบัน: **{current_wallclock}** (+{current_offset_min} นาทีจากการเริ่มต้นรอบ)\n\nเลือกเวลาสิ้นสุดใหม่โดยใช้ตัวเลือกนาฬิกาด้านล่าง",
"data": {
"trim_end_time": "เวลาสิ้นสุดใหม่",
"trim_end_min": "สิ้นสุดใหม่ (นาทีจากการเริ่มต้นรอบ)"
}
}
},
"error": {
"import_failed": "การนำเข้าล้มเหลว โปรดวาง JSON ส่งออก WashData ที่ถูกต้อง",
"select_exactly_one": "เลือกให้ครบ 1 รอบสำหรับการดำเนินการนี้",
"select_at_least_one": "เลือกอย่างน้อย 1 รอบสำหรับการดำเนินการนี้",
"select_at_least_two": "เลือกอย่างน้อย 2 รอบสำหรับการดำเนินการนี้",
"profile_exists": "มีโปรไฟล์ชื่อนี้อยู่แล้ว",
"rename_failed": "ไม่สามารถเปลี่ยนชื่อโปรไฟล์ได้ โปรไฟล์อาจไม่มีอยู่หรือมีผู้ใช้ชื่อใหม่แล้ว",
"assignment_failed": "ไม่สามารถกำหนดโปรไฟล์ให้หมุนเวียนได้",
"duplicate_phase": "มีเฟสที่ใช้ชื่อนี้อยู่แล้ว",
"phase_not_found": "ไม่พบเฟสที่เลือก",
"invalid_phase_name": "ชื่อเฟสต้องไม่เว้นว่าง",
"phase_name_too_long": "ชื่อเฟสยาวเกินไป",
"invalid_phase_range": "ช่วงเฟสไม่ถูกต้อง จุดสิ้นสุดต้องมากกว่าจุดเริ่มต้น",
"invalid_phase_timestamp": "การประทับเวลาไม่ถูกต้อง ใช้รูปแบบ YYYY-MM-DD HH:MM หรือ HH:MM",
"overlapping_phase_ranges": "ช่วงเฟสทับซ้อนกัน ปรับช่วงแล้วลองอีกครั้ง",
"incomplete_phase_row": "แต่ละแถวของเฟสจะต้องมีเฟสบวกกับค่าเริ่มต้น/สิ้นสุดที่สมบูรณ์สำหรับโหมดที่เลือก",
"timestamp_mode_cycle_required": "โปรดเลือกวงจรของแหล่งที่มาเมื่อใช้โหมดการประทับเวลา",
"no_phase_ranges": "ยังไม่มีช่วงเฟสสำหรับการดำเนินการนั้น",
"feedback_notification_title": "WashData: ตรวจสอบรอบการทำงาน ({device})",
"feedback_notification_message": "**อุปกรณ์**: {device}\n**โปรแกรม**: {program} (ความเชื่อมั่น {confidence}%)\n**เวลา**: {time}\n\nWashData ต้องการความช่วยเหลือจากคุณเพื่อตรวจสอบวงจรที่ตรวจพบนี้\n\nโปรดไปที่ **การตั้งค่า > อุปกรณ์และบริการ > WashData > กำหนดค่า > คำติชมการเรียนรู้** เพื่อยืนยันหรือแก้ไขผลลัพธ์นี้",
"suggestions_ready_notification_title": "WashData: การตั้งค่าที่แนะนำพร้อมแล้ว ({device})",
"suggestions_ready_notification_message": "ขณะนี้เซ็นเซอร์ **การตั้งค่าที่แนะนำ** รายงานคำแนะนำที่สามารถดำเนินการได้ **{count}**\n\nหากต้องการตรวจสอบและนำไปใช้: **การตั้งค่า > อุปกรณ์และบริการ > WashData > กำหนดค่า > การตั้งค่าขั้นสูง > ใช้ค่าที่แนะนำ**\n\nคำแนะนำเป็นทางเลือกและแสดงให้ตรวจสอบก่อนบันทึก",
"trim_range_invalid": "เริ่มต้นจะต้องมาก่อนสิ้นสุด โปรดปรับจุดตัดของคุณ",
"trim_failed": "ตัดแต่งล้มเหลว วงจรอาจไม่มีอยู่อีกต่อไปหรือหน้าต่างว่างเปล่า",
"invalid_split_timestamp": "เวลาที่ระบุไม่ถูกต้องหรืออยู่นอกช่วงเวลาของรอบ ใช้รูปแบบ HH:MM หรือ HH:MM:SS ภายในช่วงเวลาของรอบ",
"no_split_segments_found": "ไม่สามารถสร้างส่วนที่ถูกต้องจากเวลาที่ระบุเหล่านี้ได้ ตรวจสอบให้แน่ใจว่าแต่ละเวลาอยู่ในช่วงเวลาของรอบ และแต่ละส่วนยาวอย่างน้อย 1 นาที",
"auto_tune_suggestion": "{device_type} {device_title} ตรวจพบวงจรโกสต์ การเปลี่ยนแปลง min_power ที่แนะนำ: {current_min}W -> {new_min}W (ไม่ได้ใช้โดยอัตโนมัติ)",
"auto_tune_title": "WashData ปรับอัตโนมัติ",
"auto_tune_fallback": "{device_type} {device_title} ตรวจพบวงจรโกสต์ การเปลี่ยนแปลง min_power ที่แนะนำ: {current_min}W -> {new_min}W (ไม่ได้ใช้โดยอัตโนมัติ)"
},
"abort": {
"no_cycles_found": "ไม่พบรอบ",
"no_split_segments_found": "ไม่พบส่วนที่สามารถแยกได้ในรอบที่เลือก",
"cycle_not_found": "ไม่สามารถโหลดรอบที่เลือกได้",
"no_power_data": "ไม่มีข้อมูลการติดตามพลังงานสำหรับรอบการทำงานที่เลือก",
"no_profiles_found": "ไม่พบโปรไฟล์ สร้างโปรไฟล์ก่อน",
"no_profiles_for_matching": "ไม่มีโปรไฟล์สำหรับการจับคู่ สร้างโปรไฟล์ก่อน",
"no_unlabeled_cycles": "มีป้ายกำกับทุกรอบแล้ว",
"no_suggestions": "ยังไม่มีค่าที่แนะนำ รันสักสองสามรอบแล้วลองอีกครั้ง",
"no_predictions": "ไม่มีการคาดการณ์",
"no_custom_phases": "ไม่พบเฟสที่กำหนดเอง",
"reprocess_success": "ประมวลผลซ้ำสำเร็จแล้ว {count} รอบ",
"debug_data_cleared": "ล้างข้อมูลการแก้ไขข้อบกพร่องจาก {count} รอบเรียบร้อยแล้ว"
}
},
"selector": {
"notify_events_option": {
"options": {
"cycle_start": "วงจรเริ่มต้น",
"cycle_finish": "วงจรเสร็จสิ้น",
"cycle_live": "ความคืบหน้าสด"
}
},
"common_text": {
"options": {
"unlabeled": "(ไม่มีป้ายกำกับ)",
"create_new_profile": "สร้างโปรไฟล์ใหม่",
"remove_label": "ลบป้ายกำกับ",
"no_reference_cycle": "(ไม่มีรอบการอ้างอิง)",
"all_device_types": "อุปกรณ์ทุกประเภท",
"current_suffix": "(ปัจจุบัน)",
"editor_select_info": "เลือก 1 รอบที่จะแยก หรือ 2+ รอบเพื่อรวม",
"editor_select_info_split": "เลือก 1 รอบเพื่อแยก",
"editor_select_info_merge": "เลือก 2+ รอบเพื่อรวม",
"editor_select_info_delete": "เลือก 1+ รอบเพื่อลบ",
"no_cycles_recorded": "ยังไม่มีการบันทึกรอบ",
"profile_summary_line": "- **{name}**: {count} รอบ เฉลี่ย {avg}ม",
"no_profiles_created": "ยังไม่มีการสร้างโปรไฟล์",
"phase_preview": "ดูตัวอย่างเฟส",
"phase_preview_no_curve": "เส้นโค้งโปรไฟล์เฉลี่ยยังไม่พร้อมใช้งาน เรียกใช้/ติดป้ายกำกับรอบเพิ่มเติมสำหรับโปรไฟล์นี้",
"average_power_curve": "เส้นโค้งกำลังเฉลี่ย",
"unit_min": "นาที",
"profile_option_fmt": "{name} ({count} รอบ ~{duration}m เฉลี่ย)",
"profile_option_short_fmt": "{name} ({count} รอบ, ~{duration}ม.)",
"deleted_cycles_from_profile": "ลบ {count} รอบจาก {profile}",
"not_enough_data_graph": "ข้อมูลไม่เพียงพอที่จะสร้างกราฟ",
"no_profiles_found": "ไม่พบโปรไฟล์",
"cycle_info_fmt": "วงจร: {start}, {duration}ม. กระแส: {label}",
"top_candidates_header": "### ผู้สมัครอันดับต้นๆ",
"tbl_profile": "โปรไฟล์",
"tbl_confidence": "ความมั่นใจ",
"tbl_correlation": "ความสัมพันธ์",
"tbl_duration_match": "การจับคู่ระยะเวลา",
"detected_profile": "โปรไฟล์ที่ตรวจพบ",
"estimated_duration": "ระยะเวลาโดยประมาณ",
"actual_duration": "ระยะเวลาจริง",
"choose_action": "__เลือกการกระทำด้านล่าง:__",
"tbl_count": "นับ",
"tbl_avg": "เฉลี่ย",
"tbl_min": "นาที",
"tbl_max": "สูงสุด",
"tbl_energy_avg": "พลังงาน (เฉลี่ย)",
"tbl_energy_total": "พลังงาน (รวม)",
"tbl_consistency": "ประกอบด้วย.",
"tbl_last_run": "วิ่งครั้งสุดท้าย",
"graph_legend_title": "ตำนานกราฟ",
"graph_legend_body": "แถบสีน้ำเงินแสดงถึงช่วงการดึงกำลังขั้นต่ำและสูงสุดที่สังเกตได้ เส้นนี้แสดงกราฟกำลังเฉลี่ย",
"recording_preview": "ตัวอย่างการบันทึก",
"trim_start": "ตัดแต่งเริ่มต้น",
"trim_end": "ตัดแต่งปลาย",
"split_preview_title": "ดูตัวอย่างแบบแยกส่วน",
"split_preview_found_fmt": "พบ {count} ส่วน",
"split_preview_confirm_fmt": "คลิกยืนยันเพื่อแบ่งรอบนี้เป็น {count} รอบแยกกัน",
"merge_preview_title": "รวมตัวอย่าง",
"merge_preview_joining_fmt": "เข้าร่วม {count} รอบ ช่องว่างจะเต็มไปด้วยการอ่าน 0W",
"editor_delete_preview_title": "ตัวอย่างก่อนลบ",
"editor_delete_preview_intro": "รอบที่เลือกจะถูกลบอย่างถาวร:",
"editor_delete_preview_confirm": "คลิกยืนยันเพื่อลบระเบียนรอบเหล่านี้อย่างถาวร",
"no_power_preview": "*ไม่มีข้อมูลพลังงานสำหรับการดูตัวอย่าง*",
"profile_comparison": "การเปรียบเทียบโปรไฟล์",
"actual_cycle_label": "รอบนี้ (ตามจริง)",
"storage_usage_header": "การใช้พื้นที่เก็บข้อมูล",
"storage_file_size": "ขนาดไฟล์",
"storage_cycles": "รอบ",
"storage_profiles": "โปรไฟล์",
"storage_debug_traces": "ดีบักการติดตาม",
"overview_suffix": "ภาพรวม",
"phase_preview_for_profile": "ตัวอย่างเฟสสำหรับโปรไฟล์",
"current_ranges_header": "ช่วงปัจจุบัน",
"assign_phases_help": "ใช้การดำเนินการด้านล่างเพื่อเพิ่ม แก้ไข ลบ หรือบันทึกช่วง",
"profile_summary_header": "สรุปโปรไฟล์",
"recent_cycles_header": "รอบล่าสุด",
"trim_cycle_preview_title": "ดูตัวอย่างการตัดวงจร",
"trim_cycle_preview_no_data": "ไม่มีข้อมูลกำลังสำหรับรอบนี้",
"trim_cycle_preview_kept_suffix": "เก็บไว้",
"table_program": "โปรแกรม",
"table_when": "เมื่อใด",
"table_length": "ความยาว",
"table_match": "การจับคู่",
"table_profile": "โปรไฟล์",
"table_cycles": "รอบ",
"table_avg_length": "ความยาวเฉลี่ย",
"table_last_run": "วิ่งครั้งสุดท้าย",
"table_avg_energy": "พลังงานเฉลี่ย",
"table_detected_program": "โปรแกรมที่ตรวจพบ",
"table_confidence": "ความมั่นใจ",
"table_reported": "ที่รายงาน",
"phase_builtin_suffix": "(บิวท์อิน)",
"phase_none_available": "ไม่มีเฟสว่าง.",
"settings_deprecation_warning": "⚠️ **ประเภทอุปกรณ์ที่เลิกใช้งานแล้ว:** {device_type} มีกำหนดการนำออกในรุ่นต่อๆ ไป ไปป์ไลน์ที่ตรงกันของ WashData ไม่ได้ให้ผลลัพธ์ที่เชื่อถือได้สำหรับคลาสอุปกรณ์นี้ การบูรณาการของคุณยังคงดำเนินต่อไปจนถึงช่วงที่เลิกใช้งาน หากต้องการปิดเสียงคำเตือนนี้ ให้เปลี่ยน **ประเภทอุปกรณ์** ด้านล่างเป็นประเภทที่รองรับ (เครื่องซักผ้า เครื่องอบผ้า เครื่องซักผ้า-เครื่องอบผ้า เครื่องล้างจาน เครื่องทอดอากาศ เครื่องทำขนมปัง หรือปั๊ม) หรือเป็น **อื่นๆ (ขั้นสูง)** หากเครื่องใช้ไฟฟ้าของคุณไม่ตรงกับประเภทใดๆ ที่รองรับ **อื่นๆ (ขั้นสูง)** จัดส่งค่าเริ่มต้นทั่วไปโดยเจตนาซึ่งไม่ได้ปรับแต่งสำหรับอุปกรณ์ใดๆ โดยเฉพาะ ดังนั้นคุณจะต้องกำหนดค่าเกณฑ์ ระยะหมดเวลา และพารามิเตอร์ที่ตรงกันด้วยตนเอง การตั้งค่าที่มีอยู่ทั้งหมดของคุณจะถูกเก็บรักษาไว้เมื่อคุณเปลี่ยน",
"phase_other_device_types": "อุปกรณ์ประเภทอื่นๆ:"
}
},
"interactive_editor_action": {
"options": {
"split": "แยกวงจร (ค้นหาช่องว่าง)",
"merge": "ผสานวงจร (เข้าร่วมส่วนย่อย)",
"delete": "ลบไซเคิล"
}
},
"split_mode": {
"options": {
"auto": "ตรวจจับช่วงว่างอัตโนมัติ",
"manual": "เวลาที่ระบุเอง"
}
},
"diagnostics_action": {
"options": {
"reprocess_history": "การบำรุงรักษา: ประมวลผลใหม่และเพิ่มประสิทธิภาพข้อมูล",
"clear_debug_data": "ล้างข้อมูลการดีบัก (เพิ่มพื้นที่ว่าง)",
"wipe_history": "ล้างข้อมูลทั้งหมดสำหรับอุปกรณ์นี้ (ไม่สามารถย้อนกลับได้)",
"export_import": "ส่งออก/นำเข้า JSON ด้วยการตั้งค่า (คัดลอก/วาง)"
}
},
"export_import_mode": {
"options": {
"export": "ส่งออกข้อมูลทั้งหมด",
"import": "นำเข้า/รวมข้อมูล"
}
},
"manage_cycles_action": {
"options": {
"auto_label_cycles": "ติดป้ายกำกับรอบเก่าโดยอัตโนมัติ",
"select_cycle_to_label": "วงจรเฉพาะของฉลาก",
"select_cycle_to_delete": "ลบไซเคิล",
"interactive_editor": "ผสาน / แยกตัวแก้ไขเชิงโต้ตอบ",
"trim_cycle": "ข้อมูลรอบการตัดแต่ง"
}
},
"manage_profiles_action": {
"options": {
"create_profile": "สร้างโปรไฟล์ใหม่",
"edit_profile": "แก้ไข/เปลี่ยนชื่อโปรไฟล์",
"delete_profile": "ลบโปรไฟล์",
"profile_stats": "สถิติโปรไฟล์",
"cleanup_profile": "ล้างประวัติ - กราฟ & ลบ",
"assign_phases": "กำหนดช่วงเฟส"
}
},
"manage_phase_catalog_action": {
"options": {
"create_custom_phase": "สร้างเฟสใหม่",
"edit_custom_phase": "แก้ไขเฟส",
"delete_custom_phase": "ลบเฟส"
}
},
"assign_profile_phases_action": {
"options": {
"add_range": "เพิ่มช่วงเฟส",
"edit_range": "แก้ไขช่วงเฟส",
"delete_range": "ลบช่วงเฟส",
"clear_ranges": "ล้างทุกช่วง",
"auto_detect_ranges": "ตรวจจับเฟสอัตโนมัติ",
"save_ranges": "บันทึกและส่งคืน"
}
},
"record_cycle_action": {
"options": {
"refresh_status": "รีเฟรชสถานะ",
"stop_recording": "หยุดการบันทึก (บันทึกและประมวลผล)",
"start_recording": "เริ่มการบันทึกใหม่",
"process_recording": "ประมวลผลการบันทึกครั้งล่าสุด (ตัดแต่งและบันทึก)",
"discard_recording": "ละทิ้งการบันทึกครั้งล่าสุด"
}
},
"record_process_save_mode": {
"options": {
"new_profile": "สร้างโปรไฟล์ใหม่",
"existing_profile": "เพิ่มไปยังโปรไฟล์ที่มีอยู่",
"discard": "ยกเลิกการบันทึก"
}
},
"resolve_feedback_action": {
"options": {
"confirm": "ยืนยัน - การตรวจจับที่ถูกต้อง",
"correct": "ถูกต้อง - เลือกโปรแกรม/ระยะเวลา",
"ignore": "เพิกเฉย - วงจรบวกลวง/มีเสียงดัง",
"delete": "ลบ - ลบออกจากประวัติ"
}
},
"assign_profile_phases_auto_detect_action": {
"options": {
"name_phases": "ตั้งชื่อและสมัครเฟส",
"cancel": "กลับไปโดยไม่มีการเปลี่ยนแปลง"
}
},
"trim_cycle_action": {
"options": {
"set_start": "กำหนดจุดเริ่มต้น",
"set_end": "กำหนดจุดสิ้นสุด",
"reset": "รีเซ็ตเป็นระยะเวลาเต็ม",
"apply": "ใช้ตัดแต่ง",
"cancel": "ยกเลิก"
}
},
"device_type": {
"options": {
"washing_machine": "เครื่องซักผ้า",
"dryer": "เครื่องอบผ้า",
"washer_dryer": "เครื่องซักผ้า-เครื่องอบผ้า Combo",
"dishwasher": "เครื่องล้างจาน",
"coffee_machine": "เครื่องชงกาแฟ (เลิกใช้แล้ว)",
"ev": "รถยนต์ไฟฟ้า (เลิกใช้แล้ว)",
"air_fryer": "หม้อทอดไร้น้ำมัน",
"heat_pump": "ปั๊มความร้อน (เลิกใช้แล้ว)",
"bread_maker": "เครื่องทำขนมปัง",
"pump": "ปั๊ม/ปั๊มบ่อ",
"oven": "เตาอบ (เลิกใช้แล้ว)",
"other": "อื่นๆ (ขั้นสูง)"
}
}
},
"services": {
"label_cycle": {
"name": "วงจรฉลาก",
"description": "กำหนดโปรไฟล์ที่มีอยู่ให้กับรอบที่ผ่านมา หรือลบป้ายกำกับออก",
"fields": {
"device_id": {
"name": "อุปกรณ์",
"description": "อุปกรณ์ติดฉลากเครื่องซักผ้า"
},
"cycle_id": {
"name": "รหัสไซเคิล",
"description": "ID ของรอบที่จะติดป้ายกำกับ"
},
"profile_name": {
"name": "ชื่อโปรไฟล์",
"description": "ชื่อของโปรไฟล์ที่มีอยู่ (สร้างโปรไฟล์ในเมนูจัดการโปรไฟล์) เว้นว่างไว้เพื่อนำป้ายกำกับออก"
}
}
},
"create_profile": {
"name": "สร้างโปรไฟล์",
"description": "สร้างโปรไฟล์ใหม่ (แบบสแตนด์อโลนหรือตามรอบการอ้างอิง)",
"fields": {
"device_id": {
"name": "อุปกรณ์",
"description": "อุปกรณ์เครื่องซักผ้า"
},
"profile_name": {
"name": "ชื่อโปรไฟล์",
"description": "ชื่อของโปรไฟล์ใหม่ (เช่น 'Heavy Duty', 'Delicates')"
},
"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": "ตั้งค่าเป็นจริงหากโปรแกรมที่ตรวจพบถูกต้อง"
},
"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": "ID ของวงรอบที่จะตัดแต่ง"
},
"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 เพื่อดำเนินการต่อ"
}
}
}
},
"entity": {
"binary_sensor": {
"running": {
"name": "วิ่ง"
},
"match_ambiguity": {
"name": "จับคู่ความคลุมเครือ"
}
},
"sensor": {
"washer_state": {
"name": "สถานะ",
"state": {
"off": "ปิด",
"idle": "ไม่ได้ใช้งาน",
"starting": "กำลังเริ่มต้น",
"running": "วิ่ง",
"paused": "หยุดชั่วคราว",
"user_paused": "หยุดชั่วคราวโดยผู้ใช้",
"ending": "ตอนจบ",
"finished": "ที่เสร็จเรียบร้อย",
"anti_wrinkle": "ต่อต้านริ้วรอย",
"delay_wait": "กำลังรอการเริ่มต้น",
"interrupted": "ขัดจังหวะ",
"force_stopped": "บังคับหยุด",
"rinse": "ล้าง",
"unknown": "ไม่ทราบ",
"clean": "ทำความสะอาด"
}
},
"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": "ไม่มี"
}
},
"current_phase": {
"name": "เฟสปัจจุบัน"
},
"wash_phase": {
"name": "เฟส"
},
"profile_cycle_count": {
"name": "โปรไฟล์ {profile_name} จำนวน",
"unit_of_measurement": "รอบ"
},
"suggestions": {
"name": "การตั้งค่าที่แนะนำ"
},
"pump_runs_today": {
"name": "ปั๊มรัน (24 ชั่วโมงล่าสุด)"
},
"cycle_count": {
"name": "จำนวนรอบ"
}
},
"select": {
"program_select": {
"name": "โปรแกรมวงจร",
"state": {
"auto_detect": "ตรวจจับอัตโนมัติ"
}
}
},
"button": {
"force_end_cycle": {
"name": "บังคับให้สิ้นสุดวงจร"
},
"pause_cycle": {
"name": "หยุดวงจรชั่วคราว"
},
"resume_cycle": {
"name": "ดำเนินการต่อวงจร"
}
}
},
"exceptions": {
"device_id_required": {
"message": "จำเป็นต้องมี device_id ที่ถูกต้อง"
},
"cycle_id_required": {
"message": "จำเป็นต้องมี Cycle_id ที่ถูกต้อง"
},
"profile_name_required": {
"message": "จำเป็นต้องมีprofile_nameที่ถูกต้อง"
},
"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"
}
}
}