1342 lines
73 KiB
JSON
1342 lines
73 KiB
JSON
{
|
||
"config": {
|
||
"step": {
|
||
"user": {
|
||
"title": "WashData opsætning",
|
||
"description": "Konfigurer din vaskemaskine eller andet apparat.\n\nStrømsensor er påkrævet.\n\n**Derefter bliver du spurgt, om du vil oprette din første profil.**",
|
||
"data": {
|
||
"name": "Enhedens navn",
|
||
"device_type": "Enhedstype",
|
||
"power_sensor": "Strømsensor",
|
||
"min_power": "Minimum effekttærskel (W)"
|
||
},
|
||
"data_description": {
|
||
"name": "Et venligt navn for denne enhed (f.eks. \"Vaskemaskine\", \"Opvaskemaskine\").",
|
||
"device_type": "Hvilken type apparat er dette? Hjælper med at skræddersy detektering og mærkning.",
|
||
"power_sensor": "Sensorenheden, der rapporterer strømforbrug i realtid (i watt) fra dit smartstik.",
|
||
"min_power": "Effektaflæsninger over denne tærskel (i watt) indikerer, at apparatet kører. Start med 2W for de fleste enheder."
|
||
}
|
||
},
|
||
"first_profile": {
|
||
"title": "Opret første profil",
|
||
"description": "En **cyklus** er en komplet kørsel af dit apparat (f.eks. et læs vasketøj). En **Profil** grupperer disse cyklusser efter type (f.eks. \"Bomuld\", \"Hurtig vask\"). Oprettelse af en profil hjælper nu integrationen med at estimere varigheden med det samme.\n\nDu kan manuelt vælge denne profil i enhedskontrollerne, hvis den ikke registreres automatisk.\n\n**Lad \"Profilnavn\" stå tomt for at springe dette trin over.**",
|
||
"data": {
|
||
"profile_name": "Profilnavn (valgfrit)",
|
||
"manual_duration": "Estimeret varighed (minutter)"
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"cannot_connect": "Kunne ikke oprette forbindelse",
|
||
"invalid_auth": "Ugyldig godkendelse",
|
||
"unknown": "Uventet fejl"
|
||
},
|
||
"abort": {
|
||
"already_configured": "Enheden er allerede konfigureret"
|
||
}
|
||
},
|
||
"options": {
|
||
"step": {
|
||
"init": {
|
||
"menu_options": {
|
||
"learning_feedbacks": "Gennemgå læringsfeedback",
|
||
"settings": "Indstillinger",
|
||
"notifications": "Meddelelser",
|
||
"manage_cycles": "Administrer cyklusser",
|
||
"manage_profiles": "Administrer profiler",
|
||
"manage_phase_catalog": "Administrer fasekatalog",
|
||
"record_cycle": "Optagecyklus (manuel)",
|
||
"diagnostics": "Diagnostik og vedligeholdelse"
|
||
}
|
||
},
|
||
"apply_suggestions": {
|
||
"title": "Kopier foreslåede værdier",
|
||
"description": "Dette vil kopiere de aktuelle foreslåede værdier til dine gemte indstillinger. Dette er en engangshandling og aktiverer ikke automatisk overskrivning.\n\nForeslåede værdier at kopiere:\n{suggested}",
|
||
"data": {
|
||
"confirm": "Bekræft kopihandling"
|
||
}
|
||
},
|
||
"apply_suggestions_confirm": {
|
||
"title": "Gennemgå foreslåede ændringer",
|
||
"description": "WashData fundet **{pending_count}** foreslåede værdi(er) at anvende.\n\nÆndringer:\n{changes}\n\n✅ Marker afkrydsningsfeltet nedenfor, og klik på **Send** for at anvende og gemme disse ændringer med det samme.\n❌ Lad det være umarkeret, og klik på **Send** for at annullere og gå tilbage.",
|
||
"data": {
|
||
"confirm_apply_suggestions": "Anvend og gem disse ændringer"
|
||
}
|
||
},
|
||
"settings": {
|
||
"title": "Indstillinger",
|
||
"description": "{deprecation_warning}Indstil registreringstærskler, indlæring og avanceret adfærd. Standarder fungerer godt for de fleste opsætninger.\n\nForeslåede indstillinger tilgængelige nu: {suggestions_count}.\nHvis dette er over 0, åbn Avancerede indstillinger og brug 'Anvend foreslåede værdier' til at gennemgå anbefalingerne.",
|
||
"data": {
|
||
"apply_suggestions": "Anvend foreslåede værdier",
|
||
"device_type": "Enhedstype",
|
||
"power_sensor": "Strømsensorenhed",
|
||
"min_power": "Minimum effekt (W)",
|
||
"off_delay": "Cyklusslutforsinkelse (s)",
|
||
"notify_actions": "Underretningshandlinger",
|
||
"notify_people": "Udsæt levering, indtil disse mennesker er hjemme",
|
||
"notify_only_when_home": "Forsink meddelelser, indtil den valgte person er hjemme",
|
||
"notify_fire_events": "Udløs automatiseringshændelser",
|
||
"notify_start_services": "Cyklusstart - Notifikationsmål",
|
||
"notify_finish_services": "Cyklus afsluttet - notifikationsmål",
|
||
"notify_live_services": "Live fremskridt - Notifikationsmål",
|
||
"notify_before_end_minutes": "Underretning om forudgående afslutning (minutter før afslutning)",
|
||
"notify_title": "Underretningens titel",
|
||
"notify_icon": "Meddelelsesikon",
|
||
"notify_start_message": "Start meddelelsesformat",
|
||
"notify_finish_message": "Afslut meddelelsesformat",
|
||
"notify_pre_complete_message": "Format for forudgående færdiggørelsesbesked",
|
||
"show_advanced": "Rediger avancerede indstillinger (næste trin)"
|
||
},
|
||
"data_description": {
|
||
"apply_suggestions": "Marker dette felt for at kopiere værdier foreslået af indlæringsalgoritmen til formularen. Gennemgå før du gemmer.\n\nForeslået (fra læring):\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": "Vælg type apparat (vaskemaskine, tørretumbler, opvaskemaskine, kaffemaskine, EV). Dette tag gemmes med hver cyklus for bedre organisering.",
|
||
"power_sensor": "Sensorenheden rapporterer effekt i realtid (i watt). Du kan ændre dette når som helst uden at miste historiske data - nyttigt, hvis du udskifter et smart stik.",
|
||
"min_power": "Effektaflæsninger over denne tærskel (i watt) indikerer, at apparatet kører. Start med 2W for de fleste enheder.",
|
||
"off_delay": "Sekunder skal den udjævnede effekt forblive under stoptærsklen for at markere fuldførelse. Standard: 120s.",
|
||
"notify_actions": "Valgfri Home Assistant-handlingssekvens til at køre for notifikationer (scripts, notify, TTS osv.). Hvis det er angivet, kører handlinger før reserveunderretningstjenesten.",
|
||
"notify_people": "Personenheder, der bruges til tilstedeværelsessporing. Når det er aktiveret, forsinkes leveringen af meddelelser, indtil mindst én valgt person er hjemme.",
|
||
"notify_only_when_home": "Hvis det er aktiveret, skal du udskyde underretninger, indtil mindst én valgt person er hjemme.",
|
||
"notify_fire_events": "Hvis aktiveret, udløs Home Assistant-hændelser for cyklusstart og -slut (ha_washdata_cycle_started og ha_washdata_cycle_ended) for at drive automatiseringer.",
|
||
"notify_start_services": "En eller flere underretningstjenester for at advare, når en cyklus begynder. Lad stå tomt for at springe startmeddelelser over.",
|
||
"notify_finish_services": "En eller flere underretningstjenester for at advare, når en cyklus afsluttes eller nærmer sig fuldførelse. Lad feltet stå tomt for at springe færdiggørelsesmeddelelser over.",
|
||
"notify_live_services": "En eller flere underretningstjenester for at modtage live statusopdateringer, mens cyklussen kører (kun mobilapp). Lad stå tomt for at springe liveopdateringer over.",
|
||
"notify_before_end_minutes": "Minutter før den anslåede afslutning af cyklussen for at udløse en notifikation. Indstil til 0 for at deaktivere. Standard: 0.",
|
||
"notify_title": "Brugerdefineret titel til meddelelser. Understøtter {device} pladsholder.",
|
||
"notify_icon": "Ikon til brug for meddelelser (f.eks. mdi:vaskemaskine). Lad være tom for at sende uden ikon.",
|
||
"notify_start_message": "Besked sendt, når en cyklus starter. Understøtter {device} pladsholder.",
|
||
"notify_finish_message": "Besked sendt, når en cyklus afsluttes. Understøtter {device}, {duration}, {program}, {energy_kwh}, {cost} pladsholdere.",
|
||
"notify_pre_complete_message": "Tekst af de tilbagevendende live-fremskridtsopdateringer, mens cyklussen kører. Understøtter {device}, {minutes}, {program} pladsholdere."
|
||
}
|
||
},
|
||
"notifications": {
|
||
"title": "Meddelelser",
|
||
"description": "Konfigurer underretningskanaler, skabeloner og valgfri live-opdateringer om mobilfremskridt.",
|
||
"data": {
|
||
"notify_actions": "Underretningshandlinger",
|
||
"notify_people": "Udsæt levering, indtil disse mennesker er hjemme",
|
||
"notify_only_when_home": "Forsink meddelelser, indtil den valgte person er hjemme",
|
||
"notify_fire_events": "Udløs automatiseringshændelser",
|
||
"notify_start_services": "Cyklusstart - Notifikationsmål",
|
||
"notify_finish_services": "Cyklus afsluttet - notifikationsmål",
|
||
"notify_live_services": "Live fremskridt - Notifikationsmål",
|
||
"notify_before_end_minutes": "Underretning om forudgående afslutning (minutter før afslutning)",
|
||
"notify_live_interval_seconds": "Liveopdateringsinterval (sekunder)",
|
||
"notify_live_overrun_percent": "Tilladt overskridelse for live-opdatering (%)",
|
||
"notify_live_chronometer": "Kronometer nedtællingstimer",
|
||
"notify_title": "Underretningens titel",
|
||
"notify_icon": "Meddelelsesikon",
|
||
"notify_start_message": "Start meddelelsesformat",
|
||
"notify_finish_message": "Afslut meddelelsesformat",
|
||
"notify_pre_complete_message": "Format for forudgående færdiggørelsesbesked",
|
||
"energy_price_entity": "Energipris – enhed (valgfrit)",
|
||
"energy_price_static": "Energipris - Statisk værdi (valgfrit)",
|
||
"go_back": "Gå tilbage uden at gemme",
|
||
"notify_reminder_message": "Brevformat",
|
||
"notify_timeout_seconds": "Auto- afskedige efter (sekunder)",
|
||
"notify_channel": "Meddelelseskanal (status / live / påmindelse)",
|
||
"notify_finish_channel": "Færdig meddelelseskanal"
|
||
},
|
||
"data_description": {
|
||
"go_back": "Sæt flueben her og klik på Send for at kassere eventuelle ændringer ovenfor og vende tilbage til hovedmenuen.",
|
||
"notify_actions": "Valgfri Home Assistant-handlingssekvens til at køre for notifikationer (scripts, notify, TTS osv.). Hvis det er angivet, kører handlinger før reserveunderretningstjenesten.",
|
||
"notify_people": "Personenheder, der bruges til tilstedeværelsessporing. Når det er aktiveret, forsinkes leveringen af meddelelser, indtil mindst én valgt person er hjemme.",
|
||
"notify_only_when_home": "Hvis det er aktiveret, skal du udskyde underretninger, indtil mindst én valgt person er hjemme.",
|
||
"notify_fire_events": "Hvis aktiveret, udløs Home Assistant-hændelser for cyklusstart og -slut (ha_washdata_cycle_started og ha_washdata_cycle_ended) for at drive automatiseringer.",
|
||
"notify_start_services": "En eller flere underretningstjenester for at advare, når en cyklus begynder (f.eks. notify.mobile_app_my_phone). Lad stå tomt for at springe startmeddelelser over.",
|
||
"notify_finish_services": "En eller flere underretningstjenester for at advare, når en cyklus afsluttes eller nærmer sig fuldførelse. Lad feltet stå tomt for at springe færdiggørelsesmeddelelser over.",
|
||
"notify_live_services": "En eller flere underretningstjenester for at modtage live statusopdateringer, mens cyklussen kører (kun mobilapp). Lad stå tomt for at springe liveopdateringer over.",
|
||
"notify_before_end_minutes": "Minutter før den anslåede afslutning af cyklussen for at udløse en notifikation. Indstil til 0 for at deaktivere. Standard: 0.",
|
||
"notify_live_interval_seconds": "Hvor ofte fremskridtsopdateringer sendes, mens de kører. Lavere værdier er mere lydhøre, men bruger flere meddelelser. Der håndhæves minimum 30 sekunder - værdier under 30 s rundes automatisk op til 30 s.",
|
||
"notify_live_overrun_percent": "Sikkerhedsmargen over det estimerede opdateringstal for lange/overløbende cyklusser (for eksempel tillader 20 % 1,2x estimerede opdateringer).",
|
||
"notify_live_chronometer": "Når den er aktiveret, inkluderer hver liveopdatering en kronometernedtælling til den estimerede sluttid. Notifikationstimeren tikker automatisk ned på enheden mellem opdateringer (kun medfølgende Android-app).",
|
||
"notify_title": "Brugerdefineret titel til meddelelser. Understøtter {device} pladsholder.",
|
||
"notify_icon": "Ikon til brug for meddelelser (f.eks. mdi:vaskemaskine). Lad være tom for at sende uden ikon.",
|
||
"notify_start_message": "Besked sendt, når en cyklus starter. Understøtter {device} pladsholder.",
|
||
"notify_finish_message": "Besked sendt, når en cyklus afsluttes. Understøtter {device}, {duration}, {program}, {energy_kwh}, {cost} pladsholdere.",
|
||
"energy_price_entity": "Vælg en numerisk enhed, der har den aktuelle elpris (f.eks. sensor.electricity_price, input_number.energy_rate). Når den er indstillet, aktiveres pladsholderen {cost}. Har forrang over den statiske værdi, hvis begge er konfigureret.",
|
||
"energy_price_static": "Fast elpris pr. kWh. Når den er indstillet, aktiveres pladsholderen {cost}. Ignoreres, hvis en enhed er konfigureret ovenfor. Tilføj dit valutasymbol i beskedskabelonen, f.eks. {cost} €.",
|
||
"notify_reminder_message": "Tekst af one-time påmindelse sendt det indstillede antal minutter før den anslåede afslutning. Diskret fra de tilbagevendende live opdateringer ovenfor. Understøtter {device}, {minutes}, {program} pladsholdere.",
|
||
"notify_timeout_seconds": "Automatisk afvise meddelelser efter dette mange sekunder (fremsendes som følgesvend app \"timeout\"). Sætter til 0 for at beholde dem, indtil de bliver afskediget. Standard: 0.",
|
||
"notify_channel": "Android følgesvend app meddelelse kanal for status, live fremskridt, og påmindelse meddelelser. Lyden og betydningen af en kanal er konfigureret i følgesvend app første gang kanalnavnet bruges - WashData kun sætter kanalnavnet. Efterlad tom for appen standard.",
|
||
"notify_finish_channel": "Separat Android kanal til den færdige alarm (bruges også af påmindelsen og den vedvarende påmindelse om ventende vasketøj), så det kan have sin egen lyd. Lad det være tomt at genbruge kanalen ovenfor.",
|
||
"notify_pre_complete_message": "Tekst af de tilbagevendende live-fremskridtsopdateringer, mens cyklussen kører. Understøtter {device}, {minutes}, {program} pladsholdere."
|
||
}
|
||
},
|
||
"advanced_settings": {
|
||
"title": "Avancerede indstillinger",
|
||
"description": "Indstil registreringstærskler, indlæring og avanceret adfærd. Standarder fungerer godt for de fleste opsætninger.",
|
||
"sections": {
|
||
"suggestions_section": {
|
||
"name": "Foreslåede indstillinger",
|
||
"description": "{suggestions_count} lærte forslag tilgængelige. Sæt flueben ved Anvend foreslåede værdier for at gennemgå foreslåede ændringer, før du gemmer.",
|
||
"data": {
|
||
"apply_suggestions": "Anvend foreslåede værdier"
|
||
},
|
||
"data_description": {
|
||
"apply_suggestions": "Marker dette felt for at åbne et gennemgangstrin for foreslåede værdier fra indlæringsalgoritmen. Intet gemmes automatisk.\n\nForeslået (fra læring):\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": "Detektion og effekttærskler",
|
||
"description": "Hvornår apparatet betragtes som TÆNDT eller SLUKKET, energigrænser og timing for tilstandsskift.",
|
||
"data": {
|
||
"start_duration_threshold": "Start afvisningsvarighed (s)",
|
||
"start_energy_threshold": "Start-energigrænse (Wh)",
|
||
"completion_min_seconds": "Gennemførelse Minimum Runtime (sekunder)",
|
||
"start_threshold_w": "Startgrænse (W)",
|
||
"stop_threshold_w": "Stoptærskel (W)",
|
||
"end_energy_threshold": "Slut-energigrænse (Wh)",
|
||
"running_dead_zone": "Kørende dødzone (sekunder)",
|
||
"end_repeat_count": "Slut gentagelsestælling",
|
||
"min_off_gap": "Minimumsgab mellem cyklusser (s)",
|
||
"sampling_interval": "Sampling interval (s)"
|
||
},
|
||
"data_description": {
|
||
"start_duration_threshold": "Ignorer korte strømspidser, der er kortere end denne varighed (sekunder). Filtrerer støvlespidser (f.eks. 60 W i 2 s), før den rigtige cyklus starter. Standard: 5s.",
|
||
"start_energy_threshold": "Cyklus skal akkumulere mindst så meget energi (Wh) under START-fasen for at blive bekræftet. Standard: 0,005 Wh.",
|
||
"completion_min_seconds": "Cykler, der er kortere end dette, vil blive markeret som 'afbrudt', selvom de afsluttes naturligt. Standard: 600s.",
|
||
"start_threshold_w": "Effekten skal stige OVER denne tærskel for at STARTE en cyklus. Indstil højere end din standbyeffekt. Standard: min_power + 1 W.",
|
||
"stop_threshold_w": "Strømmen skal falde UNDER denne tærskel for at AFSLUTTE en cyklus. Indstil lige over nul for at undgå støj, der udløser falske ender. Standard: 0,6 * min_power.",
|
||
"end_energy_threshold": "Cyklus slutter kun, hvis energien i det sidste Off-Delay-vindue er under denne værdi (Wh). Forhindrer falske ender, hvis effekten svinger tæt på nul. Standard: 0,05 Wh.",
|
||
"running_dead_zone": "Efter cyklus starter, ignorer strømfald i disse mange sekunder for at forhindre falsk slutdetektion under den indledende spin-up fase. Indstil til 0 for at deaktivere. Standard: 0s.",
|
||
"end_repeat_count": "Antal gange, slutbetingelsen (effekt under tærsklen for off_delay) skal opfyldes fortløbende, før cyklussen afsluttes. Højere værdier forhindrer falske afslutninger under pauser. Standard: 1.",
|
||
"min_off_gap": "Hvis en cyklus starter inden for så mange sekunder efter, at den forrige sluttede, vil de blive fusioneret til en enkelt cyklus.",
|
||
"sampling_interval": "Minimum prøvetagningsinterval i sekunder. Opdateringer hurtigere end denne hastighed vil blive ignoreret. Standard: 30s (2s for vaskemaskiner, vaskemaskine-tørretumblere og opvaskemaskiner)."
|
||
}
|
||
},
|
||
"matching_section": {
|
||
"name": "Profilmatchning og indlæring",
|
||
"description": "Hvor aggressivt WashData matcher kørende cyklusser mod lærte profiler, og hvornår der skal anmodes om feedback.",
|
||
"data": {
|
||
"profile_match_min_duration_ratio": "Min. varighedsforhold for profilmatch (0,1-1,0)",
|
||
"profile_match_interval": "Profilmatchinterval (sekunder)",
|
||
"profile_match_threshold": "Profilmatchtærskel",
|
||
"profile_unmatch_threshold": "Profil afmatchtærskel",
|
||
"auto_label_confidence": "Auto-label-sikkerhed (0-1)",
|
||
"learning_confidence": "Feedbackanmodning om tillid (0-1)",
|
||
"suppress_feedback_notifications": "Undertrykk feedbackmeddelelser",
|
||
"duration_tolerance": "Varighedstolerance (0-0,5)",
|
||
"smoothing_window": "Udglatningsvindue (prøver)",
|
||
"profile_duration_tolerance": "Tolerance for profilmatchsvarighed (0-0,5)"
|
||
},
|
||
"data_description": {
|
||
"profile_match_min_duration_ratio": "Minimum varighedsforhold for profilmatchning. Løbecyklus skal være mindst denne brøkdel af profilvarigheden for at matche. Lavere = tidligere matchning. Standard: 0,50 (50%).",
|
||
"profile_match_interval": "Hvor ofte (i sekunder) der skal forsøges profilmatching under en cyklus. Lavere værdier giver hurtigere registrering, men bruger mere CPU. Standard: 300s (5 minutter).",
|
||
"profile_match_threshold": "Minimum DTW-lighedsscore (0,0-1,0) påkrævet for at betragte en profil som et match. Højere = strengere matchning, færre falske positive. Standard: 0,4.",
|
||
"profile_unmatch_threshold": "DTW-lighedsscore (0,0-1,0), hvorunder en tidligere matchet profil afvises. Bør være lavere end matchtærsklen for at forhindre flimren. Standard: 0,35.",
|
||
"auto_label_confidence": "Mærk automatisk cyklusser ved eller over denne konfidens ved afslutning (0,0-1,0).",
|
||
"learning_confidence": "Minimum tillid til at anmode om brugerbekræftelse via en hændelse (0.0–1.0).",
|
||
"suppress_feedback_notifications": "Når den er aktiveret, vil WashData stadig spore og anmode om feedback internt, men vil ikke vise vedvarende meddelelser, der beder dig om at bekræfte cyklusser. Nyttigt, når cyklusser altid detekteres korrekt, og du synes, meddelelserne er distraherende.",
|
||
"duration_tolerance": "Tolerance for resterende tidsestimat under en kørsel (0,0-0,5 svarer til 0-50%).",
|
||
"smoothing_window": "Antal seneste effektaflæsninger brugt til glidende gennemsnitsudjævning.",
|
||
"profile_duration_tolerance": "Tolerance brugt af profilmatchning for total varighedsvarians (0,0–0,5). Standardadfærd: ±25%."
|
||
}
|
||
},
|
||
"timing_section": {
|
||
"name": "Timing, vedligeholdelse og fejlfinding",
|
||
"description": "Watchdog, nulstilling af fremskridt, automatisk vedligeholdelse og eksponering af debug-entiteter.",
|
||
"data": {
|
||
"watchdog_interval": "Watchdog-interval (sekunder)",
|
||
"no_update_active_timeout": "Timeout uden opdatering(er)",
|
||
"progress_reset_delay": "Forsinkelse af nulstilling af status (sekunder)",
|
||
"auto_maintenance": "Aktiver automatisk vedligeholdelse",
|
||
"expose_debug_entities": "Afslør debug-enheder",
|
||
"save_debug_traces": "Gem fejlretningsspor"
|
||
},
|
||
"data_description": {
|
||
"watchdog_interval": "Sekunder mellem vagthund-tjek, mens du løber. Standard: 5s. ADVARSEL: Sørg for, at dette er HØJERE end din sensors opdateringsinterval for at undgå falske stop (f.eks. hvis sensoren opdateres hver 60., brug 65s+).",
|
||
"no_update_active_timeout": "For udgiv-ved-ændring-sensorer: Tving kun afslutning af en AKTIV cyklus, hvis der ikke kommer opdateringer i så mange sekunder. Lavt strømforbrug bruger stadig Off Delay.",
|
||
"progress_reset_delay": "Når en cyklus er fuldført (100 %), skal du vente så mange sekunder med tomgang, før du nulstiller forløbet til 0 %. Standard: 300s.",
|
||
"auto_maintenance": "Aktiver automatisk vedligeholdelse (reparer prøver, flet fragmenter).",
|
||
"expose_debug_entities": "Vis avancerede sensorer (Confidence, Phase, Ambiguity) til debugging.",
|
||
"save_debug_traces": "Gem detaljerede rangerings- og strømsporingsdata i historikken (øger lagerforbruget)."
|
||
}
|
||
},
|
||
"anti_wrinkle_section": {
|
||
"name": "Antikrøl-beskyttelse (tørretumblere)",
|
||
"description": "Ignorer tromlerotationer efter cyklus for at forhindre spøgelsescyklusser. Kun tørretumbler / vaskemaskine med tørrefunktion.",
|
||
"data": {
|
||
"anti_wrinkle_enabled": "Anti-rynkeskjold (kun tørretumbler)",
|
||
"anti_wrinkle_max_power": "Anti-rynke maksimal effekt (W)",
|
||
"anti_wrinkle_max_duration": "Anti-rynke maks. varighed (s)",
|
||
"anti_wrinkle_exit_power": "Anti-Rynke Exit Power (W)"
|
||
},
|
||
"data_description": {
|
||
"anti_wrinkle_enabled": "Ignorer korte tromlerotationer med lav effekt efter en cyklus er afsluttet for at forhindre spøgelsescyklusser (kun tørretumbler/vaskemaskine).",
|
||
"anti_wrinkle_max_power": "Udbrud ved eller under denne effekt behandles som anti-rynke rotationer i stedet for nye cyklusser. Gælder kun, når Anti-Wrinkle Shield er aktiveret.",
|
||
"anti_wrinkle_max_duration": "Maksimal sprænglængde at behandle som anti-rynke rotation. Gælder kun, når Anti-Wrinkle Shield er aktiveret.",
|
||
"anti_wrinkle_exit_power": "Hvis strømmen falder til under dette niveau, afslutte anti-rynke øjeblikkeligt (true off). Gælder kun, når Anti-Wrinkle Shield er aktiveret."
|
||
}
|
||
},
|
||
"delay_start_section": {
|
||
"name": "Registrering af forsinket start",
|
||
"description": "Behandl vedvarende standby med lav effekt som 'Venter på start', indtil cyklussen faktisk begynder.",
|
||
"data": {
|
||
"delay_start_detect_enabled": "Aktiver registrering af forsinket start",
|
||
"delay_confirm_seconds": "Forsinket start: bekræftelsestid for standby (s)",
|
||
"delay_timeout_hours": "Forsinket start: Maks. ventetid (h)"
|
||
},
|
||
"data_description": {
|
||
"delay_start_detect_enabled": "Når den er aktiveret, detekteres en kort dræningsspids med lav effekt efterfulgt af vedvarende standbystrøm som en forsinket start. Tilstandssensoren viser 'Venter på at starte' under forsinkelsen. Ingen programtid eller fremskridt spores, før cyklussen faktisk begynder. Kræver at start_threshold_w indstilles over dræningsspidseffekten.",
|
||
"delay_confirm_seconds": "Effekten skal forblive mellem Stoptærskel (W) og Starttærskel (W) i så mange sekunder, før WashData går til 'Venter på start'. Filtrerer korte spidser fra menunavigation væk. Standard: 60 s.",
|
||
"delay_timeout_hours": "Sikkerhedstimeout: Hvis maskinen stadig er i 'Venter på at starte' efter disse mange timer, nulstilles WashData til Off. Standard: 8 timer."
|
||
}
|
||
},
|
||
"external_triggers_section": {
|
||
"name": "Eksterne triggere, dør og pause",
|
||
"description": "Valgfri ekstern sensor for cyklusslut, dørsensor til registrering af pause/ren tilstand og afbryder til at afbryde strøm ved pause.",
|
||
"data": {
|
||
"external_end_trigger_enabled": "Aktiver ekstern cyklusslutudløser",
|
||
"external_end_trigger": "Ekstern cyklusslutsensor",
|
||
"external_end_trigger_inverted": "Inverter triggerlogik (trigger til FRA)",
|
||
"door_sensor_entity": "Dørsensor",
|
||
"pause_cuts_power": "Afbryd strømmen under pause",
|
||
"switch_entity": "Kontaktenhed (til strømafbrydelse ved pause)",
|
||
"notify_unload_delay_minutes": "Forsinkelse af besked om tøjvask (min.)"
|
||
},
|
||
"data_description": {
|
||
"external_end_trigger_enabled": "Aktiver overvågning af en ekstern binær sensor for at udløse cyklusafslutning.",
|
||
"external_end_trigger": "Vælg en binær sensorentitet. Når denne sensor udløses, vil den aktuelle cyklus afsluttes med status 'fuldført'.",
|
||
"external_end_trigger_inverted": "Som standard udløses udløseren, når sensoren tændes. Marker dette felt for at udløses, når sensoren i stedet slukker.",
|
||
"door_sensor_entity": "Valgfri binær sensor til maskindøren (tændt = åben, slukket = lukket). Når døren åbnes under en aktiv cyklus, vil WashData bekræfte cyklussen som bevidst sat på pause. Når cyklussen er afsluttet, hvis døren stadig er lukket, skifter tilstanden til 'Rens', indtil døren åbnes. Bemærk: lukning af døren genoptager IKKE automatisk en pauseret cyklus - genoptagelse skal udløses manuelt via knappen Genoptag cyklus eller service.",
|
||
"pause_cuts_power": "Når du holder pause via Pause Cycle-knappen eller tjenesten, skal du også deaktivere den konfigurerede switch-entitet. Træder kun i kraft, hvis en switch-entitet er konfigureret til denne enhed.",
|
||
"switch_entity": "Skiftenheden, der skal skiftes ved pause eller genoptagelse. Påkrævet, når 'Afbryd strøm ved pause' er aktiveret.",
|
||
"notify_unload_delay_minutes": "Send en meddelelse via slutmeddelelseskanalen, efter at cyklussen er afsluttet, og døren ikke er blevet åbnet i så mange minutter (kræver dørsensor). Indstil til 0 for at deaktivere. Standard: 60 min."
|
||
}
|
||
},
|
||
"pump_section": {
|
||
"name": "Pumpeovervågning",
|
||
"description": "Kun for enhedstypen pumpe. Udløser en hændelse, hvis en pumpecyklus kører længere end denne varighed.",
|
||
"data": {
|
||
"pump_stuck_duration": "Advarselsgrænse for pumpefejl (kun pumpe)"
|
||
},
|
||
"data_description": {
|
||
"pump_stuck_duration": "Hvis en pumpecyklus stadig kører efter så mange sekunder, udløses en ha_washdata_pump_stuck hændelse én gang. Brug denne til at detektere en blokeret motor (typisk pumpeløb er under 60 s). Standard: 1800 s (30 min). Kun pumpeenhedstype."
|
||
}
|
||
},
|
||
"device_link_section": {
|
||
"name": "Enhedslink",
|
||
"description": "Du kan vælge at forbinde denne Washington Data enhed til en eksisterende Home Assistant enhed (for eksempel smart plug eller selve apparatet). WashData-enheden vises derefter som \"Forbundet via\" enheden. Efterlad tom for at holde WashData som en standalone enhed.",
|
||
"data": {
|
||
"linked_device": "Forbundet enhed"
|
||
},
|
||
"data_description": {
|
||
"linked_device": "Vælg den enhed, der skal forbinde WashData til. Dette tilføjer en 'Forbundet via' reference i enhedsregistret; WashData holder sin egen enhed kort og enheder. Ryd markeringen for at fjerne linket."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"diagnostics": {
|
||
"title": "Diagnostik og vedligeholdelse",
|
||
"description": "Kør vedligeholdelseshandlinger som at flette fragmenterede cyklusser eller migrere lagrede data.\n\n**Opbevaringsbrug**\n\n- Filstørrelse: {file_size_kb} KB\n- Cykler: {cycle_count}\n- Profiler: {profile_count}\n- Fejlretningsspor: {debug_count}",
|
||
"menu_options": {
|
||
"reprocess_history": "Vedligeholdelse: Genbearbejd og optimer data",
|
||
"clear_debug_data": "Ryd fejlretningsdata (frigør plads)",
|
||
"wipe_history": "Slet ALLE data for denne enhed (irreversibel)",
|
||
"export_import": "Eksporter/importer JSON med indstillinger (kopier/indsæt)",
|
||
"menu_back": "← Tilbage"
|
||
}
|
||
},
|
||
"clear_debug_data": {
|
||
"title": "Ryd fejlretningsdata",
|
||
"description": "Er du sikker på, at du vil slette alle gemte fejlretningsspor? Dette vil frigøre plads, men fjerne detaljerede rangeringsoplysninger fra tidligere cyklusser."
|
||
},
|
||
"manage_cycles": {
|
||
"title": "Administrer cyklusser",
|
||
"description": "Seneste cyklusser:\n{recent_cycles}",
|
||
"menu_options": {
|
||
"auto_label_cycles": "Auto-mærke gamle cyklusser",
|
||
"select_cycle_to_label": "Etiketspecifik cyklus",
|
||
"select_cycle_to_delete": "Slet cyklus",
|
||
"interactive_editor": "Interaktiv flet/opdel-editor",
|
||
"trim_cycle_select": "Trim cyklusdata",
|
||
"menu_back": "← Tilbage"
|
||
}
|
||
},
|
||
"manage_cycles_empty": {
|
||
"title": "Administrer cyklusser",
|
||
"description": "Ingen cyklusser registreret endnu.",
|
||
"menu_options": {
|
||
"auto_label_cycles": "Auto-mærke gamle cyklusser",
|
||
"menu_back": "← Tilbage"
|
||
}
|
||
},
|
||
"manage_profiles": {
|
||
"title": "Administrer profiler",
|
||
"description": "Profiloversigt:\n{profile_summary}",
|
||
"menu_options": {
|
||
"create_profile": "Opret ny profil",
|
||
"edit_profile": "Rediger/Omdøb profil",
|
||
"delete_profile_select": "Slet profil",
|
||
"profile_stats": "Profilstatistik",
|
||
"cleanup_profile": "Ryd op i historie - graf og slet",
|
||
"assign_profile_phases_select": "Tildel faseintervaller",
|
||
"menu_back": "← Tilbage"
|
||
}
|
||
},
|
||
"manage_profiles_empty": {
|
||
"title": "Administrer profiler",
|
||
"description": "Ingen profiler oprettet endnu.",
|
||
"menu_options": {
|
||
"create_profile": "Opret ny profil",
|
||
"menu_back": "← Tilbage"
|
||
}
|
||
},
|
||
"manage_phase_catalog": {
|
||
"title": "Administrer fasekatalog",
|
||
"description": "Fasekatalog (standard for denne enhed + tilpassede faser):\n{phase_summary}",
|
||
"menu_options": {
|
||
"phase_catalog_create": "Opret ny fase",
|
||
"phase_catalog_edit_select": "Rediger fase",
|
||
"phase_catalog_delete": "Slet fase",
|
||
"menu_back": "← Tilbage"
|
||
}
|
||
},
|
||
"phase_catalog_create": {
|
||
"title": "Opret brugerdefineret fase",
|
||
"description": "Opret et tilpasset fasenavn og beskrivelse, og vælg hvilken enhedstype det gælder for.",
|
||
"data": {
|
||
"target_device_type": "Målenhedstype",
|
||
"phase_name": "Fase navn",
|
||
"phase_description": "Fasebeskrivelse"
|
||
}
|
||
},
|
||
"phase_catalog_edit_select": {
|
||
"title": "Rediger tilpasset fase",
|
||
"description": "Vælg en tilpasset fase for at redigere.",
|
||
"data": {
|
||
"phase_name": "Brugerdefineret fase"
|
||
}
|
||
},
|
||
"phase_catalog_edit": {
|
||
"title": "Rediger tilpasset fase",
|
||
"description": "Redigeringsfase: {phase_name}",
|
||
"data": {
|
||
"phase_name": "Fase navn",
|
||
"phase_description": "Fasebeskrivelse"
|
||
}
|
||
},
|
||
"phase_catalog_delete": {
|
||
"title": "Slet brugerdefineret fase",
|
||
"description": "Vælg en tilpasset fase for at slette. Alle tildelte områder, der bruger denne fase, vil blive fjernet.",
|
||
"data": {
|
||
"phase_name": "Brugerdefineret fase"
|
||
}
|
||
},
|
||
"assign_profile_phases": {
|
||
"title": "Tildel faseintervaller",
|
||
"description": "Forhåndsvisning af fase for profil: **{profile_name}**\n\n{timeline_svg}\n\n**Aktuelle intervaller:**\n{current_ranges}\n\nBrug handlingerne nedenfor til at tilføje, redigere, slette eller gemme områder.",
|
||
"menu_options": {
|
||
"assign_profile_phases_add": "Tilføj faseområde",
|
||
"assign_profile_phases_edit_select": "Rediger faseområde",
|
||
"assign_profile_phases_delete": "Slet faseområde",
|
||
"phase_ranges_clear": "Ryd alle områder",
|
||
"assign_profile_phases_auto_detect": "Automatisk registrering af faser",
|
||
"phase_ranges_save": "Gem og returner",
|
||
"menu_back": "← Tilbage"
|
||
}
|
||
},
|
||
"assign_profile_phases_add": {
|
||
"title": "Tilføj faseområde",
|
||
"description": "Tilføj et faseområde til det aktuelle udkast.",
|
||
"data": {
|
||
"phase_name": "Fase",
|
||
"start_min": "Start minut",
|
||
"end_min": "Slutminut"
|
||
}
|
||
},
|
||
"assign_profile_phases_edit_select": {
|
||
"title": "Rediger faseområde",
|
||
"description": "Vælg et område, der skal redigeres.",
|
||
"data": {
|
||
"range_index": "Faseområde"
|
||
}
|
||
},
|
||
"assign_profile_phases_edit": {
|
||
"title": "Rediger faseområde",
|
||
"description": "Opdater det valgte faseområde.",
|
||
"data": {
|
||
"phase_name": "Fase",
|
||
"start_min": "Start minut",
|
||
"end_min": "Slutminut"
|
||
}
|
||
},
|
||
"assign_profile_phases_delete": {
|
||
"title": "Slet faseområde",
|
||
"description": "Vælg et område, der skal fjernes fra kladden.",
|
||
"data": {
|
||
"range_index": "Faseområde"
|
||
}
|
||
},
|
||
"assign_profile_phases_auto_detect": {
|
||
"title": "Auto-detekterede faser",
|
||
"description": "Profil: **{profile_name}**\n\n{timeline_svg}\n\n**{detected_count} fase(r) registreret automatisk.** Vælg en handling nedenfor.",
|
||
"data": {
|
||
"action": "Handling"
|
||
}
|
||
},
|
||
"assign_profile_phases_auto_detect_name": {
|
||
"title": "Navn Detekterede faser",
|
||
"description": "Profil: **{profile_name}**\n\n**{detected_count} fase(r) fundet:**\n{ranges_summary}\n\nTildel et navn til hver fase."
|
||
},
|
||
"assign_profile_phases_select": {
|
||
"title": "Tildel faseintervaller",
|
||
"description": "Vælg en profil for at konfigurere faseintervaller.",
|
||
"data": {
|
||
"profile": "Profil"
|
||
}
|
||
},
|
||
"profile_stats": {
|
||
"title": "Profilstatistik",
|
||
"description": "{stats_table}"
|
||
},
|
||
"create_profile": {
|
||
"title": "Opret ny profil",
|
||
"description": "Opret en ny profil manuelt eller fra en tidligere cyklus.\n\nEksempler på profilnavne: 'Delicates', 'Heavy Duty', 'Quick Wash'",
|
||
"data": {
|
||
"profile_name": "Profilnavn",
|
||
"reference_cycle": "Referencecyklus (valgfrit)",
|
||
"manual_duration": "Manuel varighed (minutter)"
|
||
}
|
||
},
|
||
"edit_profile": {
|
||
"title": "Rediger profil",
|
||
"description": "Vælg en profil, der skal omdøbes",
|
||
"data": {
|
||
"profile": "Profil"
|
||
}
|
||
},
|
||
"rename_profile": {
|
||
"title": "Rediger profiloplysninger",
|
||
"description": "Nuværende profil: {current_name}",
|
||
"data": {
|
||
"new_name": "Profilnavn",
|
||
"manual_duration": "Manuel varighed (minutter)"
|
||
}
|
||
},
|
||
"delete_profile_select": {
|
||
"title": "Slet profil",
|
||
"description": "Vælg en profil, der skal slettes",
|
||
"data": {
|
||
"profile": "Profil"
|
||
}
|
||
},
|
||
"delete_profile_confirm": {
|
||
"title": "Bekræft Slet profil",
|
||
"description": "⚠️ Dette vil permanent slette profilen: {profile_name}",
|
||
"data": {
|
||
"unlabel_cycles": "Fjern etiket fra cyklusser ved hjælp af denne profil"
|
||
}
|
||
},
|
||
"auto_label_cycles": {
|
||
"title": "Auto-mærke gamle cyklusser",
|
||
"description": "Fundet {total_count} cyklusser i alt. Profiler: {profiles}",
|
||
"data": {
|
||
"confidence_threshold": "Minimum tillid (0,50-0,95)"
|
||
}
|
||
},
|
||
"select_cycle_to_label": {
|
||
"title": "Vælg cyklus til etiket",
|
||
"description": "✓ = afsluttet, ⚠ = genoptaget, ✗ = afbrudt",
|
||
"data": {
|
||
"cycle_id": "Cyklus"
|
||
}
|
||
},
|
||
"select_cycle_to_delete": {
|
||
"title": "Slet cyklus",
|
||
"description": "⚠️ Dette vil permanent slette den valgte cyklus",
|
||
"data": {
|
||
"cycle_id": "Cyklus at slette"
|
||
}
|
||
},
|
||
"label_cycle": {
|
||
"title": "Etiket cyklus",
|
||
"description": "{cycle_info}",
|
||
"data": {
|
||
"profile_name": "Profil",
|
||
"new_profile_name": "Nyt profilnavn (hvis oprettet)"
|
||
}
|
||
},
|
||
"post_process": {
|
||
"title": "Proceshistorik (flet/opdel)",
|
||
"description": "Ryd op i cyklushistorikken ved at flette fragmenterede kørsler og opdele forkert flettede cyklusser inden for et tidsvindue. Indtast antal timer for at se tilbage (brug 999999 for alle).",
|
||
"data": {
|
||
"time_range": "Tilbagebliksvindue (timer)",
|
||
"gap_seconds": "Flet/opdel hul (sekunder)"
|
||
},
|
||
"data_description": {
|
||
"time_range": "Antal timer at scanne for fragmenterede cyklusser at flette. Brug 999999 til at behandle alle historiske data.",
|
||
"gap_seconds": "Tærskel for at beslutte split vs merge. Mellemrum, der er KORTERE end dette, slås sammen. Længere huller end dette opdeles. Sænk denne for at fremtvinge en opdeling på en cyklus, der blev flettet forkert."
|
||
}
|
||
},
|
||
"cleanup_profile": {
|
||
"title": "Ryd op i historik - Vælg profil",
|
||
"description": "Vælg en profil for at visualisere. Dette vil generere en graf, der viser alle tidligere cyklusser for denne profil for at hjælpe med at identificere outliers.",
|
||
"data": {
|
||
"profile": "Profil"
|
||
}
|
||
},
|
||
"cleanup_select": {
|
||
"title": "Ryd op i historie - graf og slet",
|
||
"description": "\n\n**Visualiserer {profile_name}**\n\nGrafen viser individuelle cyklusser som farvede linjer. Identificer outliers (linjer langt fra gruppen) og match deres farve på listen nedenfor for at slette dem.\n\n**Vælg cyklusser, der skal slettes PERMANENT:**",
|
||
"data": {
|
||
"cycles_to_delete": "Cykler til sletning (tjek matchende farver)"
|
||
}
|
||
},
|
||
"interactive_editor": {
|
||
"title": "Interaktiv flet/opdel-editor",
|
||
"description": "Vælg en manuel handling, der skal udføres på din cyklushistorik.",
|
||
"menu_options": {
|
||
"editor_split": "Opdel en cyklus (Find huller)",
|
||
"editor_merge": "Flet cyklusser (sammenføj fragmenter)",
|
||
"editor_delete": "Slet cyklus(er)",
|
||
"menu_back": "← Tilbage"
|
||
}
|
||
},
|
||
"editor_select": {
|
||
"title": "Vælg cyklusser",
|
||
"description": "Vælg den eller de cyklusser, der skal behandles.\n\n{info_text}",
|
||
"data": {
|
||
"selected_cycles": "Cykler"
|
||
}
|
||
},
|
||
"editor_configure": {
|
||
"title": "Konfigurer og anvend",
|
||
"description": "{preview_md}",
|
||
"data": {
|
||
"confirm_action": "Handling",
|
||
"merged_profile": "Resulterende profil",
|
||
"new_profile_name": "Nyt profilnavn",
|
||
"confirm_commit": "Ja, jeg bekræfter denne handling",
|
||
"segment_0_profile": "Segment 1 profil",
|
||
"segment_1_profile": "Segment 2 profil",
|
||
"segment_2_profile": "Segment 3 profil",
|
||
"segment_3_profile": "Segment 4 profil",
|
||
"segment_4_profile": "Segment 5 profil",
|
||
"segment_5_profile": "Segment 6 profil",
|
||
"segment_6_profile": "Segment 7 profil",
|
||
"segment_7_profile": "Segment 8 profil",
|
||
"segment_8_profile": "Segment 9 profil",
|
||
"segment_9_profile": "Segment 10 profil"
|
||
}
|
||
},
|
||
"editor_split_params": {
|
||
"title": "Split konfiguration",
|
||
"description": "Juster følsomheden for at opdele denne cyklus. Ethvert tomgangsmellemrum, der er længere end dette, vil forårsage en opdeling.",
|
||
"data": {
|
||
"split_mode": "Splitmetode"
|
||
}
|
||
},
|
||
"editor_split_auto_params": {
|
||
"title": "Konfiguration af automatisk opdeling",
|
||
"description": "Juster følsomheden for opdeling af denne cyklus. Enhver tomgangspause længere end dette vil medføre en opdeling.",
|
||
"data": {
|
||
"min_gap_seconds": "Tærskel for opdelingspause (sekunder)"
|
||
}
|
||
},
|
||
"editor_split_manual_params": {
|
||
"title": "Manuelle opdelings-tidsstempler",
|
||
"description": "{preview_md}Cyklusvindue: **{cycle_start_wallclock} → {cycle_end_wallclock}** den {cycle_date}.\n\nIndtast et eller flere opdelings-tidsstempler (`HH:MM` eller `HH:MM:SS`), ét pr. linje. Cyklussen bliver delt ved hvert tidsstempel — N tidsstempler giver N+1 segmenter.",
|
||
"data": {
|
||
"split_timestamps": "Tidsstempler for opdeling"
|
||
}
|
||
},
|
||
"reprocess_history": {
|
||
"title": "Vedligeholdelse: Genbearbejd og optimer data",
|
||
"description": "Udfører dyb rensning af historiske data:\n1. Trimmer nul-effekt-aflæsninger (tavshed).\n2. Retter cyklus timing/varighed.\n3. Genberegner alle statistiske modeller (kuverter).\n\n**Kør dette for at løse dataproblemer eller anvende nye algoritmer.**"
|
||
},
|
||
"wipe_history": {
|
||
"title": "Slet historie (kun test)",
|
||
"description": "⚠️ Dette vil permanent slette ALLE gemte cyklusser og profiler for denne enhed. Dette kan ikke fortrydes!"
|
||
},
|
||
"export_import": {
|
||
"title": "Eksporter/importer JSON",
|
||
"description": "Kopiér/indsæt cyklusser, profiler OG indstillinger for denne enhed. Eksporter nedenfor, eller indsæt JSON for at importere.",
|
||
"data": {
|
||
"mode": "Handling",
|
||
"json_payload": "Fuldfør konfiguration JSON"
|
||
},
|
||
"data_description": {
|
||
"mode": "Vælg Eksporter for at kopiere aktuelle data og indstillinger, eller Importer for at indsætte eksporterede data fra en anden WashData-enhed.",
|
||
"json_payload": "Til eksport: kopier denne JSON (inkluderer cyklusser, profiler og alle finjusterede indstillinger). Til import: indsæt JSON eksporteret fra WashData."
|
||
}
|
||
},
|
||
"record_cycle": {
|
||
"title": "Optag cyklus",
|
||
"description": "Optag manuelt en cyklus for at skabe en ren profil uden forstyrrelser.\n\nStatus: **{status}**\nVarighed: {duration}s\nEksempler: {samples}",
|
||
"menu_options": {
|
||
"record_refresh": "Opdater status",
|
||
"record_stop": "Stop optagelse (Gem og bearbejd)",
|
||
"record_start": "Start ny optagelse",
|
||
"record_process": "Behandle sidste optagelse (Trim & Gem)",
|
||
"record_discard": "Kassér sidste optagelse",
|
||
"menu_back": "← Tilbage"
|
||
}
|
||
},
|
||
"record_process": {
|
||
"title": "Procesoptagelse",
|
||
"description": "\n\n**Graf viser rå optagelse.** Blå = Behold, Rød = Foreslået trim.\n*Graf er statisk og opdateres ikke med formularændringer.*\n\nOptagelsen stoppede. Trim justeres til den detekterede prøvetagningshastighed (~{sampling_rate}s).\n\nRå varighed: {duration}s\nEksempler: {samples}",
|
||
"data": {
|
||
"head_trim": "Trimstart (sekunder)",
|
||
"tail_trim": "Trim slut (sekunder)",
|
||
"save_mode": "Gem destination",
|
||
"profile_name": "Profilnavn"
|
||
}
|
||
},
|
||
"learning_feedbacks": {
|
||
"title": "Læringsfeedback",
|
||
"description": "Afventende feedback: {count}\n\n{pending_table}\n\nVælg en anmodning om cyklusgennemgang, der skal behandles.",
|
||
"menu_options": {
|
||
"learning_feedbacks_pick": "Gennemgå afventende feedback",
|
||
"learning_feedbacks_dismiss_all": "Afvis al afventende feedback",
|
||
"menu_back": "← Tilbage"
|
||
}
|
||
},
|
||
"learning_feedbacks_pick": {
|
||
"title": "Vælg feedback til gennemgang",
|
||
"description": "Vælg en anmodning om cyklusgennemgang, der skal åbnes.",
|
||
"data": {
|
||
"selected_feedback": "Vælg cyklus til gennemgang"
|
||
}
|
||
},
|
||
"learning_feedbacks_empty": {
|
||
"title": "Læringsfeedback",
|
||
"description": "Der blev ikke fundet nogen afventende feedbackanmodninger.",
|
||
"menu_options": {
|
||
"menu_back": "← Tilbage"
|
||
}
|
||
},
|
||
"learning_feedbacks_dismiss_all": {
|
||
"title": "Afvis al ventende feedback",
|
||
"description": "Du er ved at afvise **{count}** ventende feedbackanmodninger. Afviste cyklusser forbliver i din historik, men bidrager ikke med nyt læringssignal. Dette kan ikke fortrydes.\n\n✅ Marker afkrydsningsfeltet nedenfor, og klik på **Send** for at afvise alle.\n❌ Lad det være umarkeret, og klik på **Send** for at annullere og gå tilbage.",
|
||
"data": {
|
||
"confirm_dismiss_all": "Bekræft: afvis alle afventende feedbackanmodninger"
|
||
}
|
||
},
|
||
"resolve_feedback": {
|
||
"title": "Løs feedback",
|
||
"description": "{comparison_img}{candidates_table}\n**Opdaget profil**: {detected_profile} ({confidence_pct}%)\n**Estimeret varighed**: {est_duration_min} min\n**Faktisk varighed**: {act_duration_min} min\n\n__Vælg en handling nedenfor:__",
|
||
"data": {
|
||
"action": "Hvad vil du gerne lave?",
|
||
"corrected_profile": "Korrekt program (hvis der rettes)",
|
||
"corrected_duration": "Korrekt varighed i sekunder (hvis der rettes)"
|
||
}
|
||
},
|
||
"trim_cycle_select": {
|
||
"title": "Trim cyklus - Vælg cyklus",
|
||
"description": "Vælg en cyklus at trimme. ✓ = afsluttet, ⚠ = genoptaget, ✗ = afbrudt",
|
||
"data": {
|
||
"cycle_id": "Cyklus"
|
||
}
|
||
},
|
||
"trim_cycle": {
|
||
"title": "Trim cyklus",
|
||
"description": "Aktuelt vindue: {trim_summary}\n\n{trim_svg}",
|
||
"data": {
|
||
"action": "Handling"
|
||
}
|
||
},
|
||
"trim_cycle_start": {
|
||
"title": "Indstil trimstart",
|
||
"description": "Cyklusvindue: {cycle_start_wallclock} → {cycle_end_wallclock}\n\nNuværende start: **{current_wallclock}** (+{current_offset_min} min fra cyklusstart)\n\nVælg et nyt starttidspunkt ved hjælp af urvælgeren nedenfor.",
|
||
"data": {
|
||
"trim_start_time": "Nyt starttidspunkt",
|
||
"trim_start_min": "Ny start (minutter fra cyklusstart)"
|
||
}
|
||
},
|
||
"trim_cycle_end": {
|
||
"title": "Indstil trim slutposition",
|
||
"description": "Cyklusvindue: {cycle_start_wallclock} → {cycle_end_wallclock}\n\nNuværende slut: **{current_wallclock}** (+{current_offset_min} min. fra cyklusstart)\n\nVælg et nyt sluttidspunkt ved hjælp af urvælgeren nedenfor.",
|
||
"data": {
|
||
"trim_end_time": "Nyt sluttidspunkt",
|
||
"trim_end_min": "Ny slutning (minutter fra cyklusstart)"
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"import_failed": "Import mislykkedes. Indsæt venligst en gyldig WashData-eksport-JSON.",
|
||
"select_exactly_one": "Vælg præcis én cyklus til denne handling.",
|
||
"select_at_least_one": "Vælg mindst én cyklus til denne handling.",
|
||
"select_at_least_two": "Vælg mindst to cyklusser til denne handling.",
|
||
"profile_exists": "Der findes allerede en profil med dette navn",
|
||
"rename_failed": "Profilen kunne ikke omdøbes. Profilen eksisterer muligvis ikke, eller der er allerede taget et nyt navn.",
|
||
"assignment_failed": "Kunne ikke tildele profil til cyklus",
|
||
"duplicate_phase": "En fase med dette navn eksisterer allerede.",
|
||
"phase_not_found": "Den valgte fase blev ikke fundet.",
|
||
"invalid_phase_name": "Fasenavnet må ikke være tomt.",
|
||
"phase_name_too_long": "Fasenavnet er for langt.",
|
||
"invalid_phase_range": "Faseinterval er ugyldigt. Slut skal være større end start.",
|
||
"invalid_phase_timestamp": "Tidsstemplet er ugyldigt. Brug formatet ÅÅÅÅ-MM-DD TT:MM eller TT:MM.",
|
||
"overlapping_phase_ranges": "Faseområder overlapper hinanden. Juster intervallerne, og prøv igen.",
|
||
"incomplete_phase_row": "Hver faserække skal indeholde en fase plus komplette start-/slutværdier for den valgte tilstand.",
|
||
"timestamp_mode_cycle_required": "Vælg venligst en kildecyklus, når du bruger tidsstempeltilstand.",
|
||
"no_phase_ranges": "Ingen faseintervaller er tilgængelige for den handling endnu.",
|
||
"feedback_notification_title": "WashData: Bekræft cyklus ({device})",
|
||
"feedback_notification_message": "**Enhed**: {device}\n**Program**: {program} ({confidence} % konfidens)\n**Tid**: {time}\n\nWashData har brug for din hjælp til at verificere denne detekterede cyklus.\n\nGå til **Indstillinger > Enheder og tjenester > WashData > Konfigurer > Læringsfeedback** for at bekræfte eller rette dette resultat.",
|
||
"suggestions_ready_notification_title": "WashData: Foreslåede indstillinger klar ({device})",
|
||
"suggestions_ready_notification_message": "Sensoren **Foreslåede indstillinger** rapporterer nu **{count}** handlingsrettede anbefalinger.\n\nSådan gennemgår og anvender du dem: **Indstillinger > Enheder og tjenester > WashData > Konfigurer > Avancerede indstillinger > Anvend foreslåede værdier**.\n\nForslag er valgfrie og vises til gennemgang, før du gemmer.",
|
||
"trim_range_invalid": "Start skal være før slut. Juster venligst dine trimpunkter.",
|
||
"trim_failed": "Trimning mislykkedes. Cyklussen eksisterer muligvis ikke længere, eller vinduet er tomt.",
|
||
"invalid_split_timestamp": "Tidsstemplet er ugyldigt eller uden for cyklusvinduet. Brug HH:MM eller HH:MM:SS inden for cyklusvinduet.",
|
||
"no_split_segments_found": "Der kunne ikke dannes gyldige segmenter ud fra disse tidsstempler. Sørg for, at hvert tidsstempel ligger inden for cyklusvinduet, og at segmenterne er mindst 1 minut lange.",
|
||
"auto_tune_suggestion": "{device_type} {device_title} registrerede spøgelsescyklusser. Foreslået min_effektændring: {current_min}W -> {new_min}W (ikke anvendt automatisk).",
|
||
"auto_tune_title": "WashData Auto-Tune",
|
||
"auto_tune_fallback": "{device_type} {device_title} registrerede spøgelsescyklusser. Foreslået min_effektændring: {current_min}W -> {new_min}W (ikke anvendt automatisk)."
|
||
},
|
||
"abort": {
|
||
"no_cycles_found": "Ingen cyklusser fundet",
|
||
"no_split_segments_found": "Der blev ikke fundet nogen opdelbare segmenter i den valgte cyklus.",
|
||
"cycle_not_found": "Den valgte cyklus kunne ikke indlæses.",
|
||
"no_power_data": "Ingen strømsporingsdata tilgængelige for den valgte cyklus.",
|
||
"no_profiles_found": "Ingen profiler fundet. Opret en profil først.",
|
||
"no_profiles_for_matching": "Ingen profiler tilgængelige for matchning. Opret profiler først.",
|
||
"no_unlabeled_cycles": "Alle cyklusser er allerede mærket",
|
||
"no_suggestions": "Ingen foreslåede værdier tilgængelige endnu. Kør et par cyklusser og prøv igen.",
|
||
"no_predictions": "Ingen forudsigelser",
|
||
"no_custom_phases": "Ingen tilpassede faser fundet.",
|
||
"reprocess_success": "Genbehandlet {count} cyklusser.",
|
||
"debug_data_cleared": "Fejlretningsdata fra {count} cyklusser blev ryddet."
|
||
}
|
||
},
|
||
"selector": {
|
||
"notify_events_option": {
|
||
"options": {
|
||
"cycle_start": "Cyklus start",
|
||
"cycle_finish": "Cyklus afslutning",
|
||
"cycle_live": "Live fremskridt"
|
||
}
|
||
},
|
||
"common_text": {
|
||
"options": {
|
||
"unlabeled": "(Umærket)",
|
||
"create_new_profile": "Opret ny profil",
|
||
"remove_label": "Fjern etiket",
|
||
"no_reference_cycle": "(Ingen referencecyklus)",
|
||
"all_device_types": "Alle enhedstyper",
|
||
"current_suffix": "(aktuel)",
|
||
"editor_select_info": "Vælg 1 cyklus for at opdele, eller 2+ cyklusser for at flette.",
|
||
"editor_select_info_split": "Vælg 1 cyklus, der skal opdeles.",
|
||
"editor_select_info_merge": "Vælg 2 eller flere cyklusser, der skal flettes.",
|
||
"editor_select_info_delete": "Vælg 1 eller flere cyklusser, der skal slettes.",
|
||
"no_cycles_recorded": "Ingen cyklusser registreret endnu.",
|
||
"profile_summary_line": "- **{name}**: {count} cyklusser, {avg}m gns",
|
||
"no_profiles_created": "Ingen profiler oprettet endnu.",
|
||
"phase_preview": "Forhåndsvisning af fase",
|
||
"phase_preview_no_curve": "Gennemsnitlig profilkurve er ikke tilgængelig endnu. Kør/mærk flere cyklusser for denne profil.",
|
||
"average_power_curve": "Gennemsnitlig effektkurve",
|
||
"unit_min": "min",
|
||
"profile_option_fmt": "{name} ({count} cyklusser, ~{duration}m gns.)",
|
||
"profile_option_short_fmt": "{name} ({count} cyklusser, ~{duration}m)",
|
||
"deleted_cycles_from_profile": "Slettede {count} cyklusser fra {profile}.",
|
||
"not_enough_data_graph": "Ikke nok data til at generere graf.",
|
||
"no_profiles_found": "Ingen profiler fundet.",
|
||
"cycle_info_fmt": "Cyklus: {start}, {duration}m, aktuel: {label}",
|
||
"top_candidates_header": "### Topkandidater",
|
||
"tbl_profile": "Profil",
|
||
"tbl_confidence": "Tillid",
|
||
"tbl_correlation": "Korrelation",
|
||
"tbl_duration_match": "Varighed Match",
|
||
"detected_profile": "Registreret profil",
|
||
"estimated_duration": "Estimeret varighed",
|
||
"actual_duration": "Faktisk varighed",
|
||
"choose_action": "__Vælg en handling nedenfor:__",
|
||
"tbl_count": "Tælle",
|
||
"tbl_avg": "Gns",
|
||
"tbl_min": "Min",
|
||
"tbl_max": "Maks",
|
||
"tbl_energy_avg": "Energi (Gns.)",
|
||
"tbl_energy_total": "Energi (i alt)",
|
||
"tbl_consistency": "Konsistens",
|
||
"tbl_last_run": "Sidste løb",
|
||
"graph_legend_title": "Grafforklaring",
|
||
"graph_legend_body": "Det blå bånd repræsenterer det observerede minimum og maksimum strømforbrug. Linjen viser den gennemsnitlige effektkurve.",
|
||
"recording_preview": "Forhåndsvisning af optagelse",
|
||
"trim_start": "Trim start",
|
||
"trim_end": "Trim ende",
|
||
"split_preview_title": "Opdel forhåndsvisning",
|
||
"split_preview_found_fmt": "Fandt {count} segmenter.",
|
||
"split_preview_confirm_fmt": "Klik på Bekræft for at opdele denne cyklus i {count} separate cyklusser.",
|
||
"merge_preview_title": "Forhåndsvisning af sammenfletning",
|
||
"merge_preview_joining_fmt": "Deltager i {count} cyklusser. Huller vil blive udfyldt med 0W aflæsninger.",
|
||
"editor_delete_preview_title": "Sletteforhåndsvisning",
|
||
"editor_delete_preview_intro": "De valgte cyklusser slettes permanent:",
|
||
"editor_delete_preview_confirm": "Klik på Bekræft for at slette disse cyklusposter permanent.",
|
||
"no_power_preview": "*Ingen strømdata tilgængelige til forhåndsvisning.*",
|
||
"profile_comparison": "Profil sammenligning",
|
||
"actual_cycle_label": "Denne cyklus (faktisk)",
|
||
"storage_usage_header": "Opbevaringsbrug",
|
||
"storage_file_size": "Filstørrelse",
|
||
"storage_cycles": "Cykler",
|
||
"storage_profiles": "Profiler",
|
||
"storage_debug_traces": "Fejlsøgningsspor",
|
||
"overview_suffix": "Oversigt",
|
||
"phase_preview_for_profile": "Forhåndsvisning af fase til profil",
|
||
"current_ranges_header": "Aktuelle intervaller",
|
||
"assign_phases_help": "Brug handlingerne nedenfor til at tilføje, redigere, slette eller gemme områder.",
|
||
"profile_summary_header": "Profiloversigt",
|
||
"recent_cycles_header": "Seneste cyklusser",
|
||
"trim_cycle_preview_title": "Forhåndsvisning af cyklustrim",
|
||
"trim_cycle_preview_no_data": "Ingen strømdata tilgængelige for denne cyklus.",
|
||
"trim_cycle_preview_kept_suffix": "holdt",
|
||
"table_program": "Program",
|
||
"table_when": "Hvornår",
|
||
"table_length": "Længde",
|
||
"table_match": "Match",
|
||
"table_profile": "Profil",
|
||
"table_cycles": "Cykler",
|
||
"table_avg_length": "Gns. længde",
|
||
"table_last_run": "Sidste løb",
|
||
"table_avg_energy": "Gns. energi",
|
||
"table_detected_program": "Registreret program",
|
||
"table_confidence": "Tillid",
|
||
"table_reported": "Rapporteret",
|
||
"phase_builtin_suffix": "(Indbygget)",
|
||
"phase_none_available": "Ingen faser tilgængelige.",
|
||
"settings_deprecation_warning": "⚠️ **Udgået enhedstype:** {device_type} er planlagt til fjernelse i en fremtidig udgivelse. WashDatas matchende pipeline giver ikke pålidelige resultater for denne apparatklasse. Din integration bliver ved med at fungere gennem afskrivningsperioden; For at slå denne advarsel fra, skal du skifte **Enhedstype** nedenfor til en af de understøttede typer (vaskemaskine, tørretumbler, vaskemaskine-tørretumbler, opvaskemaskine, luftfrituregryde, brødmaskine eller pumpe), eller til **Andet (avanceret)**, hvis dit apparat ikke matcher nogen af de understøttede typer. **Andet (avanceret)** sender bevidst generiske standardindstillinger, der ikke er indstillet til nogen specifik enhed, så du skal selv konfigurere tærskler, timeouts og matchende parametre; alle dine eksisterende indstillinger bevares, når du skifter.",
|
||
"phase_other_device_types": "Andre enhedstyper:"
|
||
}
|
||
},
|
||
"interactive_editor_action": {
|
||
"options": {
|
||
"split": "Opdel en cyklus (Find huller)",
|
||
"merge": "Flet cyklusser (sammenføj fragmenter)",
|
||
"delete": "Slet cyklus(er)"
|
||
}
|
||
},
|
||
"split_mode": {
|
||
"options": {
|
||
"auto": "Registrer inaktive mellemrum automatisk",
|
||
"manual": "Manuelle tidsstempler"
|
||
}
|
||
},
|
||
"diagnostics_action": {
|
||
"options": {
|
||
"reprocess_history": "Vedligeholdelse: Genbearbejd og optimer data",
|
||
"clear_debug_data": "Ryd fejlretningsdata (frigør plads)",
|
||
"wipe_history": "Slet ALLE data for denne enhed (irreversibel)",
|
||
"export_import": "Eksporter/importer JSON med indstillinger (kopier/indsæt)"
|
||
}
|
||
},
|
||
"export_import_mode": {
|
||
"options": {
|
||
"export": "Eksporter alle data",
|
||
"import": "Importer/flet data"
|
||
}
|
||
},
|
||
"manage_cycles_action": {
|
||
"options": {
|
||
"auto_label_cycles": "Auto-mærke gamle cyklusser",
|
||
"select_cycle_to_label": "Etiketspecifik cyklus",
|
||
"select_cycle_to_delete": "Slet cyklus",
|
||
"interactive_editor": "Interaktiv flet/opdel-editor",
|
||
"trim_cycle": "Trim cyklusdata"
|
||
}
|
||
},
|
||
"manage_profiles_action": {
|
||
"options": {
|
||
"create_profile": "Opret ny profil",
|
||
"edit_profile": "Rediger/Omdøb profil",
|
||
"delete_profile": "Slet profil",
|
||
"profile_stats": "Profilstatistik",
|
||
"cleanup_profile": "Ryd op i historie - graf og slet",
|
||
"assign_phases": "Tildel faseintervaller"
|
||
}
|
||
},
|
||
"manage_phase_catalog_action": {
|
||
"options": {
|
||
"create_custom_phase": "Opret ny fase",
|
||
"edit_custom_phase": "Rediger fase",
|
||
"delete_custom_phase": "Slet fase"
|
||
}
|
||
},
|
||
"assign_profile_phases_action": {
|
||
"options": {
|
||
"add_range": "Tilføj faseområde",
|
||
"edit_range": "Rediger faseområde",
|
||
"delete_range": "Slet faseområde",
|
||
"clear_ranges": "Ryd alle områder",
|
||
"auto_detect_ranges": "Automatisk registrering af faser",
|
||
"save_ranges": "Gem og returner"
|
||
}
|
||
},
|
||
"record_cycle_action": {
|
||
"options": {
|
||
"refresh_status": "Opdater status",
|
||
"stop_recording": "Stop optagelse (Gem og bearbejd)",
|
||
"start_recording": "Start ny optagelse",
|
||
"process_recording": "Behandle sidste optagelse (Trim & Gem)",
|
||
"discard_recording": "Kassér sidste optagelse"
|
||
}
|
||
},
|
||
"record_process_save_mode": {
|
||
"options": {
|
||
"new_profile": "Opret ny profil",
|
||
"existing_profile": "Føj til eksisterende profil",
|
||
"discard": "Kassér optagelse"
|
||
}
|
||
},
|
||
"resolve_feedback_action": {
|
||
"options": {
|
||
"confirm": "Bekræft - Korrekt registrering",
|
||
"correct": "Korrekt - Vælg Program/Varighed",
|
||
"ignore": "Ignorer - Falsk positiv/støjende cyklus",
|
||
"delete": "Slet - Fjern fra historik"
|
||
}
|
||
},
|
||
"assign_profile_phases_auto_detect_action": {
|
||
"options": {
|
||
"name_phases": "Navngiv og anvend faser",
|
||
"cancel": "Gå tilbage uden ændringer"
|
||
}
|
||
},
|
||
"trim_cycle_action": {
|
||
"options": {
|
||
"set_start": "Indstil startpunkt",
|
||
"set_end": "Indstil slutpunkt",
|
||
"reset": "Nulstil til fuld varighed",
|
||
"apply": "Påfør Trim",
|
||
"cancel": "Ophæve"
|
||
}
|
||
},
|
||
"device_type": {
|
||
"options": {
|
||
"washing_machine": "Vaskemaskine",
|
||
"dryer": "Tørretumbler",
|
||
"washer_dryer": "Vaske-tørretumbler kombi",
|
||
"dishwasher": "Opvaskemaskine",
|
||
"coffee_machine": "Kaffemaskine (forældet)",
|
||
"ev": "Elektrisk køretøj (udfaset)",
|
||
"air_fryer": "Air Fryer",
|
||
"heat_pump": "Varmepumpe (udgået)",
|
||
"bread_maker": "Brødmaskine",
|
||
"pump": "Pumpe / Sump Pumpe",
|
||
"oven": "Ovn (forældet)",
|
||
"other": "Andet (avanceret)"
|
||
}
|
||
}
|
||
},
|
||
"services": {
|
||
"label_cycle": {
|
||
"name": "Etiket cyklus",
|
||
"description": "Tildel en eksisterende profil til en tidligere cyklus, eller fjern etiketten.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Enhed",
|
||
"description": "Vaskemaskinen enhed til at mærke."
|
||
},
|
||
"cycle_id": {
|
||
"name": "Cyklus ID",
|
||
"description": "ID'et for den cyklus, der skal mærkes."
|
||
},
|
||
"profile_name": {
|
||
"name": "Profilnavn",
|
||
"description": "Navnet på en eksisterende profil (opret profiler i menuen Administrer profiler). Lad være tomt for at fjerne etiketten."
|
||
}
|
||
}
|
||
},
|
||
"create_profile": {
|
||
"name": "Opret profil",
|
||
"description": "Opret en ny profil (standalone eller baseret på en referencecyklus).",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Enhed",
|
||
"description": "Vaskemaskinenheden."
|
||
},
|
||
"profile_name": {
|
||
"name": "Profilnavn",
|
||
"description": "Navn på den nye profil (f.eks. 'Heavy Duty', 'Delicates')."
|
||
},
|
||
"reference_cycle_id": {
|
||
"name": "Referencecyklus-id",
|
||
"description": "Valgfrit cyklus-id at basere denne profil på."
|
||
}
|
||
}
|
||
},
|
||
"delete_profile": {
|
||
"name": "Slet profil",
|
||
"description": "Slet en profil og fjern eventuelt etiketter for cyklusser ved hjælp af den.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Enhed",
|
||
"description": "Vaskemaskinenheden."
|
||
},
|
||
"profile_name": {
|
||
"name": "Profilnavn",
|
||
"description": "Profilen, der skal slettes."
|
||
},
|
||
"unlabel_cycles": {
|
||
"name": "Fjern etiketter på cyklusser",
|
||
"description": "Fjern profiletiketten fra cyklusser ved hjælp af denne profil."
|
||
}
|
||
}
|
||
},
|
||
"auto_label_cycles": {
|
||
"name": "Auto-mærke gamle cyklusser",
|
||
"description": "Mærk umærkede cyklusser med tilbagevirkende kraft ved hjælp af profilmatchning.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Enhed",
|
||
"description": "Vaskemaskinenheden."
|
||
},
|
||
"confidence_threshold": {
|
||
"name": "Tillidsgrænse",
|
||
"description": "Mindste matchkonfidens (0,50-0,95) for at anvende etiketter."
|
||
}
|
||
}
|
||
},
|
||
"export_config": {
|
||
"name": "Eksporter Konfig",
|
||
"description": "Eksporter denne enheds profiler, cyklusser og indstillinger til en JSON-fil (pr. enhed).",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Enhed",
|
||
"description": "Vaskemaskinen enhed til at eksportere."
|
||
},
|
||
"path": {
|
||
"name": "Sti",
|
||
"description": "Valgfri absolut filsti at skrive (standard til /config/ha_washdata_export_{entry}.json)."
|
||
}
|
||
}
|
||
},
|
||
"import_config": {
|
||
"name": "Importer konfiguration",
|
||
"description": "Importer profiler, cyklusser og indstillinger for denne enhed fra en JSON-eksportfil (indstillinger kan blive overskrevet).",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Enhed",
|
||
"description": "Vaskemaskinen, der skal importeres til."
|
||
},
|
||
"path": {
|
||
"name": "Sti",
|
||
"description": "Absolut sti til eksport-JSON-filen, der skal importeres."
|
||
}
|
||
}
|
||
},
|
||
"submit_cycle_feedback": {
|
||
"name": "Indsend cyklusfeedback",
|
||
"description": "Bekræft eller ret et auto-detekteret program efter en afsluttet cyklus. Angiv enten \"entry_id\" (avanceret) eller \"device_id\" (anbefales).",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Enhed",
|
||
"description": "WashData-enheden (anbefales i stedet for entry_id)."
|
||
},
|
||
"entry_id": {
|
||
"name": "Indgangs-id",
|
||
"description": "Konfigurationsindgangs-id'et for enheden (alternativ til device_id)."
|
||
},
|
||
"cycle_id": {
|
||
"name": "Cyklus ID",
|
||
"description": "Cyklus-id'et vist i feedbackmeddelelsen/logfilerne."
|
||
},
|
||
"user_confirmed": {
|
||
"name": "Bekræft fundet program",
|
||
"description": "Indstil sand, hvis det detekterede program er korrekt."
|
||
},
|
||
"corrected_profile": {
|
||
"name": "Korrigeret profil",
|
||
"description": "Hvis det ikke bekræftes, skal du angive det korrekte profil-/programnavn."
|
||
},
|
||
"corrected_duration": {
|
||
"name": "Korrigeret varighed (sekunder)",
|
||
"description": "Valgfri korrigeret varighed i sekunder."
|
||
},
|
||
"notes": {
|
||
"name": "Noter",
|
||
"description": "Valgfrie bemærkninger om denne cyklus."
|
||
}
|
||
}
|
||
},
|
||
"record_start": {
|
||
"name": "Optag cyklus start",
|
||
"description": "Start manuelt at optage en ren cyklus (omgår al matchende logik).",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Enhed",
|
||
"description": "Vaskemaskinen enhed til at optage."
|
||
}
|
||
}
|
||
},
|
||
"record_stop": {
|
||
"name": "Optag cyklus stop",
|
||
"description": "Stop manuel optagelse.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Enhed",
|
||
"description": "Vaskemaskinen enheden til at stoppe optagelsen."
|
||
}
|
||
}
|
||
},
|
||
"trim_cycle": {
|
||
"name": "Trim cyklus",
|
||
"description": "Trim effektdataene for en tidligere cyklus til et bestemt tidsvindue.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Enhed",
|
||
"description": "WashData-enheden."
|
||
},
|
||
"cycle_id": {
|
||
"name": "Cyklus ID",
|
||
"description": "ID'et for den cyklus, der skal trimmes."
|
||
},
|
||
"trim_start_s": {
|
||
"name": "Trimstart (sekunder)",
|
||
"description": "Gem data fra denne offset i sekunder. Standard 0."
|
||
},
|
||
"trim_end_s": {
|
||
"name": "Trim slut (sekunder)",
|
||
"description": "Hold data op til denne offset i sekunder. Standard = fuld varighed."
|
||
}
|
||
}
|
||
},
|
||
"pause_cycle": {
|
||
"name": "Pause cyklus",
|
||
"description": "Sæt den aktive cyklus på pause for en WashData-enhed.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Enhed",
|
||
"description": "WashData-enheden til pause."
|
||
}
|
||
}
|
||
},
|
||
"resume_cycle": {
|
||
"name": "Genoptag cyklus",
|
||
"description": "Genoptag en afbrudt cyklus for en WashData-enhed.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Enhed",
|
||
"description": "WashData-enheden skal genoptages."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"entity": {
|
||
"binary_sensor": {
|
||
"running": {
|
||
"name": "Løb"
|
||
},
|
||
"match_ambiguity": {
|
||
"name": "Matchtvetydighed"
|
||
}
|
||
},
|
||
"sensor": {
|
||
"washer_state": {
|
||
"name": "Tilstand",
|
||
"state": {
|
||
"off": "Slukket",
|
||
"idle": "Ledig",
|
||
"starting": "Starter",
|
||
"running": "Løb",
|
||
"paused": "Pause",
|
||
"user_paused": "Sat på pause af brugeren",
|
||
"ending": "Slutning",
|
||
"finished": "Færdig",
|
||
"anti_wrinkle": "Anti-Rynke",
|
||
"delay_wait": "Venter på at starte",
|
||
"interrupted": "Afbrudt",
|
||
"force_stopped": "Tving stoppet",
|
||
"rinse": "Skylle",
|
||
"unknown": "Ukendt",
|
||
"clean": "Ren"
|
||
}
|
||
},
|
||
"washer_program": {
|
||
"name": "Program"
|
||
},
|
||
"time_remaining": {
|
||
"name": "Tid tilbage"
|
||
},
|
||
"total_duration": {
|
||
"name": "Samlet varighed"
|
||
},
|
||
"cycle_progress": {
|
||
"name": "Fremskridt"
|
||
},
|
||
"current_power": {
|
||
"name": "Nuværende strøm"
|
||
},
|
||
"elapsed_time": {
|
||
"name": "Forløbet tid"
|
||
},
|
||
"debug_info": {
|
||
"name": "Fejlretningsinfo"
|
||
},
|
||
"match_confidence": {
|
||
"name": "Matchsikkerhed"
|
||
},
|
||
"top_candidates": {
|
||
"name": "Topkandidater",
|
||
"state": {
|
||
"none": "Ingen"
|
||
}
|
||
},
|
||
"current_phase": {
|
||
"name": "Nuværende fase"
|
||
},
|
||
"wash_phase": {
|
||
"name": "Fase"
|
||
},
|
||
"profile_cycle_count": {
|
||
"name": "Antal profil {profile_name}",
|
||
"unit_of_measurement": "cyklusser"
|
||
},
|
||
"suggestions": {
|
||
"name": "Foreslåede indstillinger"
|
||
},
|
||
"pump_runs_today": {
|
||
"name": "Pumpen kører (sidste 24 timer)"
|
||
},
|
||
"cycle_count": {
|
||
"name": "Cyklustælling"
|
||
}
|
||
},
|
||
"select": {
|
||
"program_select": {
|
||
"name": "Cyklus program",
|
||
"state": {
|
||
"auto_detect": "Automatisk registrering"
|
||
}
|
||
}
|
||
},
|
||
"button": {
|
||
"force_end_cycle": {
|
||
"name": "Tving afslutningscyklus"
|
||
},
|
||
"pause_cycle": {
|
||
"name": "Pause cyklus"
|
||
},
|
||
"resume_cycle": {
|
||
"name": "Genoptag cyklus"
|
||
}
|
||
}
|
||
},
|
||
"exceptions": {
|
||
"device_id_required": {
|
||
"message": "Et gyldigt device_id er påkrævet."
|
||
},
|
||
"cycle_id_required": {
|
||
"message": "Et gyldigt cycle_id er påkrævet."
|
||
},
|
||
"profile_name_required": {
|
||
"message": "Et gyldigt profilnavn er påkrævet."
|
||
},
|
||
"device_not_found": {
|
||
"message": "Enheden blev ikke fundet."
|
||
},
|
||
"no_config_entry": {
|
||
"message": "Ingen konfigurationsindgang fundet for enheden."
|
||
},
|
||
"integration_not_loaded": {
|
||
"message": "Integration ikke indlæst for denne enhed."
|
||
},
|
||
"cycle_not_found_or_no_power": {
|
||
"message": "Cyklus ikke fundet eller har ingen strømdata."
|
||
},
|
||
"trim_failed_empty_window": {
|
||
"message": "Trim mislykkedes - cyklus blev ikke fundet, ingen strømdata, eller det resulterende vindue er tomt."
|
||
},
|
||
"trim_invalid_range": {
|
||
"message": "trim_end_s skal være større end trim_start_s."
|
||
}
|
||
}
|
||
}
|