1342 lines
75 KiB
JSON
1342 lines
75 KiB
JSON
{
|
||
"config": {
|
||
"step": {
|
||
"user": {
|
||
"title": "WashData-instellingen",
|
||
"description": "Configureer uw wasmachine of ander apparaat.\n\nVermogenssensor is vereist.\n\n**Vervolgens wordt u gevraagd of u uw eerste profiel wilt aanmaken.**",
|
||
"data": {
|
||
"name": "Apparaatnaam",
|
||
"device_type": "Apparaattype",
|
||
"power_sensor": "Vermogenssensor",
|
||
"min_power": "Minimale vermogensdrempel (W)"
|
||
},
|
||
"data_description": {
|
||
"name": "Een beschrijvende naam voor dit apparaat (bijvoorbeeld 'Wasmachine', 'Vaatwasser').",
|
||
"device_type": "Welk type apparaat is dit? Helpt bij het op maat maken van detectie en labeling.",
|
||
"power_sensor": "De sensorentiteit die het realtime energieverbruik (in watt) van uw slimme stekker rapporteert.",
|
||
"min_power": "Vermogensmetingen boven deze drempel (in watt) geven aan dat het apparaat werkt. Begin met 2W voor de meeste apparaten."
|
||
}
|
||
},
|
||
"first_profile": {
|
||
"title": "Maak het eerste profiel aan",
|
||
"description": "Een **Cyclus** is een volledige cyclus van uw apparaat (bijvoorbeeld een lading wasgoed). Een **Profiel** groepeert deze cycli op type (bijvoorbeeld 'Katoen', 'Snelwas'). Door nu een profiel aan te maken, kan de integratieduur direct worden ingeschat.\n\nU kunt dit profiel handmatig selecteren in de apparaatbediening als het niet automatisch wordt gedetecteerd.\n\n**Laat 'Profielnaam' leeg om deze stap over te slaan.**",
|
||
"data": {
|
||
"profile_name": "Profielnaam (optioneel)",
|
||
"manual_duration": "Geschatte duur (minuten)"
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"cannot_connect": "Kan geen verbinding maken",
|
||
"invalid_auth": "Ongeldige authenticatie",
|
||
"unknown": "Onverwachte fout"
|
||
},
|
||
"abort": {
|
||
"already_configured": "Apparaat is al geconfigureerd"
|
||
}
|
||
},
|
||
"options": {
|
||
"step": {
|
||
"init": {
|
||
"menu_options": {
|
||
"learning_feedbacks": "Leerfeedback bekijken",
|
||
"settings": "Instellingen",
|
||
"notifications": "Meldingen",
|
||
"manage_cycles": "Cycli beheren",
|
||
"manage_profiles": "Profielen beheren",
|
||
"manage_phase_catalog": "Fasecatalogus beheren",
|
||
"record_cycle": "Cyclus opnemen (handmatig)",
|
||
"diagnostics": "Diagnostiek & Onderhoud"
|
||
}
|
||
},
|
||
"apply_suggestions": {
|
||
"title": "Voorgestelde waarden overnemen",
|
||
"description": "Hiermee worden de huidige voorgestelde waarden naar uw opgeslagen instellingen gekopieerd. Dit is een eenmalige actie en maakt automatisch overschrijven niet mogelijk.\n\nVoorgestelde waarden om over te nemen:\n{suggested}",
|
||
"data": {
|
||
"confirm": "Bevestig de kopieeractie"
|
||
}
|
||
},
|
||
"apply_suggestions_confirm": {
|
||
"title": "Voorgestelde wijzigingen bekijken",
|
||
"description": "WashData heeft **{pending_count}** voorgestelde waarde(n) gevonden om toe te passen.\n\nVeranderingen:\n{changes}\n\n✅ Vink het onderstaande vakje aan en klik op **Verzenden** om deze wijzigingen onmiddellijk toe te passen en op te slaan.\n❌ Laat dit uitgeschakeld en klik op **Verzenden** om te annuleren en terug te gaan.",
|
||
"data": {
|
||
"confirm_apply_suggestions": "Pas deze wijzigingen toe en sla ze op"
|
||
}
|
||
},
|
||
"settings": {
|
||
"title": "Instellingen",
|
||
"description": "{deprecation_warning}Stem detectiedrempels, leerprocessen en geavanceerd gedrag af. Standaardinstellingen werken goed voor de meeste configuraties.\n\nBeschikbare voorgestelde instellingen: {suggestions_count}.\nAls dit boven 0 is, open dan Geavanceerde instellingen en gebruik 'Voorgestelde waarden toepassen' om aanbevelingen te bekijken.",
|
||
"data": {
|
||
"apply_suggestions": "Voorgestelde waarden toepassen",
|
||
"device_type": "Apparaattype",
|
||
"power_sensor": "Vermogenssensor-entiteit",
|
||
"min_power": "Minimaal vermogen (W)",
|
||
"off_delay": "Vertraging cycluseinde (s)",
|
||
"notify_actions": "Meldingsacties",
|
||
"notify_people": "Bezorging uitstellen totdat deze personen thuis zijn",
|
||
"notify_only_when_home": "Meldingen uitstellen totdat geselecteerde persoon thuis is",
|
||
"notify_fire_events": "Automatiseringsgebeurtenissen activeren",
|
||
"notify_start_services": "Cyclusstart: meldingsdoelen",
|
||
"notify_finish_services": "Einde cyclus: meldingsdoelen",
|
||
"notify_live_services": "Live voortgang: meldingsdoelen",
|
||
"notify_before_end_minutes": "Melding vóór voltooiing (minuten voor einde)",
|
||
"notify_title": "Meldingstitel",
|
||
"notify_icon": "Meldingspictogram",
|
||
"notify_start_message": "Startberichtopmaak",
|
||
"notify_finish_message": "Voltooiingsberichtopmaak",
|
||
"notify_pre_complete_message": "Berichtopmaak vóór voltooiing",
|
||
"show_advanced": "Geavanceerde instellingen bewerken (volgende stap)"
|
||
},
|
||
"data_description": {
|
||
"apply_suggestions": "Vink dit vakje aan om de door het leeralgoritme voorgestelde waarden naar het formulier te kopiëren. Controleer voordat u opslaat.\n\nVoorgesteld (door leeralgoritme):\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": "Selecteer het type apparaat (wasmachine, droger, vaatwasser, koffiezetapparaat, EV). Deze tag wordt bij elke cyclus opgeslagen voor een betere organisatie.",
|
||
"power_sensor": "De sensorentiteit die realtime vermogen rapporteert (in watt). U kunt dit op elk moment wijzigen zonder dat historische gegevens verloren gaan - handig als u een slimme stekker vervangt.",
|
||
"min_power": "Vermogensmetingen boven deze drempel (in watt) geven aan dat het apparaat werkt. Begin met 2W voor de meeste apparaten.",
|
||
"off_delay": "Seconden dat het afgevlakte vermogen onder de stopdrempel moet blijven om voltooiing te markeren. Standaard: 120s.",
|
||
"notify_actions": "Optionele Home Assistant-actiereeks voor meldingen (scripts, meldingen, TTS, enz.). Indien ingesteld, worden acties uitgevoerd vóór de terugvalmeldingsservice.",
|
||
"notify_people": "Persoonsentiteiten voor aanwezigheidscontrole. Indien ingeschakeld, wordt de bezorging van meldingen uitgesteld totdat ten minste één geselecteerde persoon thuis is.",
|
||
"notify_only_when_home": "Indien ingeschakeld, worden meldingen uitgesteld totdat ten minste één geselecteerde persoon thuis is.",
|
||
"notify_fire_events": "Indien ingeschakeld, worden Home Assistant-gebeurtenissen geactiveerd voor het begin en einde van de cyclus (ha_washdata_cycle_started en ha_washdata_cycle_ended) om automatiseringen aan te sturen.",
|
||
"notify_start_services": "Een of meer meldingsservices om te waarschuwen wanneer een cyclus begint. Laat leeg om startmeldingen over te slaan.",
|
||
"notify_finish_services": "Een of meer waarschuwingsservices om te waarschuwen wanneer een cyclus is voltooid of bijna voltooid is. Laat leeg om finishmeldingen over te slaan.",
|
||
"notify_live_services": "Een of meer meldingsdiensten om live voortgangsupdates te ontvangen terwijl de cyclus loopt (alleen mobiele begeleidende app). Laat leeg om live updates over te slaan.",
|
||
"notify_before_end_minutes": "Minuten vóór het geschatte einde van de cyclus om een melding te activeren. Stel in op 0 om uit te schakelen. Standaard: 0.",
|
||
"notify_title": "Aangepaste titel voor meldingen. Ondersteunt de tijdelijke aanduiding {device}.",
|
||
"notify_icon": "Pictogram voor meldingen (bijv. mdi:washing-machine). Laat leeg om zonder pictogram te verzenden.",
|
||
"notify_start_message": "Bericht verzonden wanneer een cyclus start. Ondersteunt de tijdelijke aanduiding {device}.",
|
||
"notify_finish_message": "Bericht verzonden wanneer een cyclus is voltooid. Ondersteunt de tijdelijke aanduidingen {device}, {duration}, {program}, {energy_kwh}, {cost}.",
|
||
"notify_pre_complete_message": "Tekst van de terugkerende live voortgangsupdates terwijl de cyclus loopt. Ondersteunt tijdelijke aanduidingen voor {device}, {minutes}, {program}."
|
||
}
|
||
},
|
||
"notifications": {
|
||
"title": "Meldingen",
|
||
"description": "Configureer meldingskanalen, sjablonen en optionele live voortgangsupdates op mobiel.",
|
||
"data": {
|
||
"notify_actions": "Meldingsacties",
|
||
"notify_people": "Bezorging uitstellen totdat deze personen thuis zijn",
|
||
"notify_only_when_home": "Meldingen uitstellen totdat geselecteerde persoon thuis is",
|
||
"notify_fire_events": "Automatiseringsgebeurtenissen activeren",
|
||
"notify_start_services": "Cyclusstart: meldingsdoelen",
|
||
"notify_finish_services": "Einde cyclus: meldingsdoelen",
|
||
"notify_live_services": "Live voortgang: meldingsdoelen",
|
||
"notify_before_end_minutes": "Melding vóór voltooiing (minuten voor einde)",
|
||
"notify_live_interval_seconds": "Live-updateinterval (seconden)",
|
||
"notify_live_overrun_percent": "Overschrijdingstoeslag live updates (%)",
|
||
"notify_live_chronometer": "Chronometer afteltimer",
|
||
"notify_title": "Meldingstitel",
|
||
"notify_icon": "Meldingspictogram",
|
||
"notify_start_message": "Startberichtopmaak",
|
||
"notify_finish_message": "Voltooiingsberichtopmaak",
|
||
"notify_pre_complete_message": "Berichtopmaak vóór voltooiing",
|
||
"energy_price_entity": "Energieprijs - Entiteit (optioneel)",
|
||
"energy_price_static": "Energieprijs - Statische waarde (optioneel)",
|
||
"go_back": "Terug zonder op te slaan",
|
||
"notify_reminder_message": "Herinneringsberichtformaat",
|
||
"notify_timeout_seconds": "Automatisch sluiten na (seconden)",
|
||
"notify_channel": "Meldingskanaal (status/live/herinnering)",
|
||
"notify_finish_channel": "Meldingskanaal voltooid"
|
||
},
|
||
"data_description": {
|
||
"go_back": "Vink dit aan en klik op Verzenden om bovenstaande wijzigingen te verwerpen en terug te keren naar het hoofdmenu.",
|
||
"notify_actions": "Optionele Home Assistant-actiereeks voor meldingen (scripts, meldingen, TTS, enz.). Indien ingesteld, worden acties uitgevoerd vóór de terugvalmeldingsservice.",
|
||
"notify_people": "Persoonsentiteiten voor aanwezigheidscontrole. Indien ingeschakeld, wordt de bezorging van meldingen uitgesteld totdat ten minste één geselecteerde persoon thuis is.",
|
||
"notify_only_when_home": "Indien ingeschakeld, worden meldingen uitgesteld totdat ten minste één geselecteerde persoon thuis is.",
|
||
"notify_fire_events": "Indien ingeschakeld, worden Home Assistant-gebeurtenissen geactiveerd voor het begin en einde van de cyclus (ha_washdata_cycle_started en ha_washdata_cycle_ended) om automatiseringen aan te sturen.",
|
||
"notify_start_services": "Een of meer meldingsservices die waarschuwen wanneer een cyclus begint (bijvoorbeeld notificatie.mobile_app_my_phone). Laat leeg om startmeldingen over te slaan.",
|
||
"notify_finish_services": "Een of meer waarschuwingsservices om te waarschuwen wanneer een cyclus is voltooid of bijna voltooid is. Laat leeg om finishmeldingen over te slaan.",
|
||
"notify_live_services": "Een of meer meldingsdiensten om live voortgangsupdates te ontvangen terwijl de cyclus loopt (alleen mobiele begeleidende app). Laat leeg om live updates over te slaan.",
|
||
"notify_before_end_minutes": "Minuten vóór het geschatte einde van de cyclus om een melding te activeren. Stel in op 0 om uit te schakelen. Standaard: 0.",
|
||
"notify_live_interval_seconds": "Hoe vaak voortgangsupdates worden verzonden tijdens een actieve cyclus. Lagere waarden reageren beter, maar verbruiken meer meldingen. Er wordt een minimum van 30 seconden gehanteerd - waarden onder de 30 seconden worden automatisch afgerond naar 30 seconden.",
|
||
"notify_live_overrun_percent": "Veiligheidsmarge boven het geschatte aantal updates voor lange of uitlopende cycli (20% staat bijvoorbeeld 1,2× het geschatte aantal updates toe).",
|
||
"notify_live_chronometer": "Indien ingeschakeld, bevat elke live update een aftelling van de chronometer naar de geschatte eindtijd. De meldingstimer tikt automatisch af op het apparaat tussen updates door (alleen Android-app).",
|
||
"notify_title": "Aangepaste titel voor meldingen. Ondersteunt de tijdelijke aanduiding {device}.",
|
||
"notify_icon": "Pictogram voor meldingen (bijv. mdi:washing-machine). Laat leeg om zonder pictogram te verzenden.",
|
||
"notify_start_message": "Bericht verzonden wanneer een cyclus start. Ondersteunt de tijdelijke aanduiding {device}.",
|
||
"notify_finish_message": "Bericht verzonden wanneer een cyclus is voltooid. Ondersteunt de tijdelijke aanduidingen {device}, {duration}, {program}, {energy_kwh}, {cost}.",
|
||
"energy_price_entity": "Selecteer een numerieke entiteit die de huidige elektriciteitsprijs bevat (bijvoorbeeld sensor.elektriciteitsprijs, invoernummer.energietarief). Indien ingesteld, wordt de tijdelijke aanduiding {cost} ingeschakeld. Heeft voorrang op de statische waarde als beide zijn geconfigureerd.",
|
||
"energy_price_static": "Vaste elektriciteitsprijs per kWh. Indien ingesteld, wordt de tijdelijke aanduiding {cost} ingeschakeld. Genegeerd als hierboven een entiteit is geconfigureerd. Voeg uw valutasymbool toe aan de berichtsjabloon, b.v. {cost} €.",
|
||
"notify_reminder_message": "De tekst van de eenmalige herinnering verzendt het geconfigureerde aantal minuten vóór het geschatte einde. Anders dan de terugkerende live-updates hierboven. Ondersteunt tijdelijke aanduidingen voor {device}, {minutes}, {program}.",
|
||
"notify_timeout_seconds": "Meldingen na dit aantal seconden automatisch negeren (doorgestuurd als 'time-out' van de bijbehorende app). Stel deze in op 0 om ze te behouden totdat ze worden verwijderd. Standaard: 0.",
|
||
"notify_channel": "Android meldingskanaal voor de begeleidende app voor status, live voortgang en herinneringsmeldingen. Het geluid en het belang van een kanaal worden geconfigureerd in de bijbehorende app wanneer de kanaalnaam voor het eerst wordt gebruikt - WashData stelt alleen de kanaalnaam in. Laat leeg voor de app-standaard.",
|
||
"notify_finish_channel": "Apart kanaal Android voor de klaar-waarschuwing (wordt ook gebruikt door de herinnering en het was-wacht-gezeur) zodat het een eigen geluid kan hebben. Laat leeg om het bovenstaande kanaal opnieuw te gebruiken.",
|
||
"notify_pre_complete_message": "Tekst van de terugkerende live voortgangsupdates terwijl de cyclus loopt. Ondersteunt tijdelijke aanduidingen voor {device}, {minutes}, {program}."
|
||
}
|
||
},
|
||
"advanced_settings": {
|
||
"title": "Geavanceerde instellingen",
|
||
"description": "Stem detectiedrempels, leerprocessen en geavanceerd gedrag af. Standaardinstellingen werken goed voor de meeste configuraties.",
|
||
"sections": {
|
||
"suggestions_section": {
|
||
"name": "Voorgestelde instellingen",
|
||
"description": "{suggestions_count} geleerde suggesties beschikbaar. Vink Voorgestelde waarden toepassen aan om voorgestelde wijzigingen te bekijken voordat u opslaat.",
|
||
"data": {
|
||
"apply_suggestions": "Voorgestelde waarden toepassen"
|
||
},
|
||
"data_description": {
|
||
"apply_suggestions": "Vink dit vakje aan om een beoordelingsstap te openen voor voorgestelde waarden van het leeralgoritme. Er wordt niets automatisch opgeslagen.\n\nVoorgesteld (door leeralgoritme):\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": "Detectie- en vermogensdrempels",
|
||
"description": "Wanneer het apparaat als AAN of UIT wordt beschouwd, energiedrempels en timing voor statusovergangen.",
|
||
"data": {
|
||
"start_duration_threshold": "Startdebounce-duur (s)",
|
||
"start_energy_threshold": "Startenergiegrens (Wh)",
|
||
"completion_min_seconds": "Voltooiing: minimale looptijd (seconden)",
|
||
"start_threshold_w": "Startdrempel (W)",
|
||
"stop_threshold_w": "Stopdrempel (W)",
|
||
"end_energy_threshold": "Eindenergiegrens (Wh)",
|
||
"running_dead_zone": "Dode zone bij starten (seconden)",
|
||
"end_repeat_count": "Einde herhalingsaantal",
|
||
"min_off_gap": "Min. interval tussen cycli (s)",
|
||
"sampling_interval": "Bemonsteringsinterval (s)"
|
||
},
|
||
"data_description": {
|
||
"start_duration_threshold": "Negeer korte vermogenspieken korter dan deze duur (seconden). Filtert opstartpieken (bijv. 60 W gedurende 2 s) vóór de echte cyclusstart. Standaard: 5s.",
|
||
"start_energy_threshold": "De cyclus moet ten minste zoveel energie (Wh) accumuleren tijdens de STARTFASE om te worden bevestigd. Standaard: 0,005 Wh.",
|
||
"completion_min_seconds": "Cycli korter dan dit worden gemarkeerd als 'onderbroken', ook als ze op natuurlijke wijze eindigen. Standaard: 600s.",
|
||
"start_threshold_w": "Vermogen moet BOVEN deze drempel stijgen om een cyclus te STARTEN. Stel hoger in dan uw stand-byvermogen. Standaard: min_power + 1 W.",
|
||
"stop_threshold_w": "Vermogen moet ONDER deze drempel dalen om een cyclus te BEËINDIGEN. Stel net boven nul in om te voorkomen dat ruis valse eindpunten veroorzaakt. Standaard: 0,6 × min_power.",
|
||
"end_energy_threshold": "De cyclus eindigt alleen als de energie in het laatste uitschakelvertragingvenster onder deze waarde (Wh) ligt. Voorkomt valse eindpunten als het vermogen dicht bij nul schommelt. Standaard: 0,05 Wh.",
|
||
"running_dead_zone": "Nadat de cyclus is gestart, worden vermogensdips gedurende dit aantal seconden genegeerd om valse einddetectie tijdens de initiële opstartfase te voorkomen. Stel in op 0 om uit te schakelen. Standaard: 0s.",
|
||
"end_repeat_count": "Aantal keren dat de eindconditie (vermogen onder de drempel gedurende de uitschakelvertraging) achtereenvolgens moet worden bereikt voordat de cyclus eindigt. Hogere waarden voorkomen valse eindpunten tijdens pauzes. Standaard: 1.",
|
||
"min_off_gap": "Als een cyclus binnen dit aantal seconden na het einde van de vorige begint, worden ze SAMENGEVOEGD tot één cyclus.",
|
||
"sampling_interval": "Minimaal bemonsteringsinterval in seconden. Updates sneller dan dit tempo worden genegeerd. Standaard: 30s (2s voor wasmachines, was-droogcombinaties en vaatwassers)."
|
||
}
|
||
},
|
||
"matching_section": {
|
||
"name": "Profielovereenkomst en leren",
|
||
"description": "Hoe agressief WashData actieve cycli vergelijkt met geleerde profielen en wanneer om feedback wordt gevraagd.",
|
||
"data": {
|
||
"profile_match_min_duration_ratio": "Min. duurverhouding profielmatch (0,1-1,0)",
|
||
"profile_match_interval": "Profielmatchinterval (seconden)",
|
||
"profile_match_threshold": "Profielmatchdrempel",
|
||
"profile_unmatch_threshold": "Profiel-geen-matchdrempel",
|
||
"auto_label_confidence": "Vertrouwen automatisch labelen (0-1)",
|
||
"learning_confidence": "Vertrouwen feedbackverzoek (0-1)",
|
||
"suppress_feedback_notifications": "Feedbackmeldingen onderdrukken",
|
||
"duration_tolerance": "Duurtolerantie (0-0,5)",
|
||
"smoothing_window": "Afvlakkingsvenster (samples)",
|
||
"profile_duration_tolerance": "Duurtolerantie profielmatch (0-0,5)"
|
||
},
|
||
"data_description": {
|
||
"profile_match_min_duration_ratio": "Minimale duurverhouding voor profielmatching. De lopende cyclus moet ten minste dit deel van de profielduur bedragen om te matchen. Lager = eerder matchen. Standaard: 0,50 (50%).",
|
||
"profile_match_interval": "Hoe vaak (in seconden) profielmatching wordt geprobeerd tijdens een cyclus. Lagere waarden zorgen voor snellere detectie maar gebruiken meer CPU. Standaard: 300s (5 minuten).",
|
||
"profile_match_threshold": "Minimale DTW-gelijkenisscore (0,0–1,0) vereist om een profiel als match te beschouwen. Hoger = strengere matching, minder valse positieven. Standaard: 0,4.",
|
||
"profile_unmatch_threshold": "DTW-gelijkenisscore (0,0–1,0) waaronder een eerder gematchd profiel wordt afgewezen. Moet lager zijn dan de matchdrempel om flikkering te voorkomen. Standaard: 0,35.",
|
||
"auto_label_confidence": "Label cycli automatisch bij dit vertrouwensniveau of hoger na voltooiing (0,0–1,0).",
|
||
"learning_confidence": "Minimaal vertrouwen om gebruikersverificatie aan te vragen via een gebeurtenis (0,0–1,0).",
|
||
"suppress_feedback_notifications": "Indien ingeschakeld, zal WashData nog steeds intern feedback volgen en om feedback vragen, maar geen permanente meldingen weergeven waarin u wordt gevraagd cycli te bevestigen. Handig als cycli altijd correct worden gedetecteerd en u de aanwijzingen afleidend vindt.",
|
||
"duration_tolerance": "Tolerantie voor schattingen van de resterende tijd tijdens een cyclus (0,0–0,5 komt overeen met 0–50%).",
|
||
"smoothing_window": "Aantal recente vermogensmetingen gebruikt voor voortschrijdend-gemiddelde afvlakking.",
|
||
"profile_duration_tolerance": "Tolerantie voor totale duurvariatie bij profielmatching (0,0–0,5). Standaardgedrag: ±25%."
|
||
}
|
||
},
|
||
"timing_section": {
|
||
"name": "Timing, onderhoud en debug",
|
||
"description": "Watchdog, voortgangsreset, automatisch onderhoud en zichtbaarheid van debug-entiteiten.",
|
||
"data": {
|
||
"watchdog_interval": "Watchdog-interval (seconden)",
|
||
"no_update_active_timeout": "Time-out zonder updates (s)",
|
||
"progress_reset_delay": "Vertraging voortgangsreset (seconden)",
|
||
"auto_maintenance": "Automatisch onderhoud inschakelen",
|
||
"expose_debug_entities": "Debug-entiteiten zichtbaar maken",
|
||
"save_debug_traces": "Debugsporen opslaan"
|
||
},
|
||
"data_description": {
|
||
"watchdog_interval": "Seconden tussen watchdog-controles tijdens een actieve cyclus. Standaard: 5s. WAARSCHUWING: Zorg dat dit HOGER is dan het update-interval van uw sensor om valse stops te voorkomen (als de sensor bijv. elke 60s bijwerkt, gebruik dan 65s+).",
|
||
"no_update_active_timeout": "Voor sensoren die alleen bij wijziging publiceren: beëindig een ACTIEVE cyclus pas geforceerd als er gedurende dit aantal seconden geen updates binnenkomen. Voltooiing bij laag vermogen gebruikt nog steeds de uitschakelvertraging.",
|
||
"progress_reset_delay": "Nadat een cyclus is voltooid (100%), wacht dit aantal seconden inactief voordat de voortgang wordt teruggezet naar 0%. Standaard: 300s.",
|
||
"auto_maintenance": "Automatisch onderhoud inschakelen (samples herstellen, fragmenten samenvoegen).",
|
||
"expose_debug_entities": "Geavanceerde sensoren weergeven (betrouwbaarheid, fase, dubbelzinnigheid) voor foutopsporing.",
|
||
"save_debug_traces": "Gedetailleerde rangschikkings- en vermogensspoorgegevens bewaren in de geschiedenis (verhoogt opslaggebruik)."
|
||
}
|
||
},
|
||
"anti_wrinkle_section": {
|
||
"name": "Antikreukbescherming (drogers)",
|
||
"description": "Negeer trommelrotaties na de cyclus om spookcycli te voorkomen. Alleen droger / was-droogcombinatie.",
|
||
"data": {
|
||
"anti_wrinkle_enabled": "Anti-kreukschild (alleen droger/was-droogcombinatie)",
|
||
"anti_wrinkle_max_power": "Anti-kreuk max. vermogen (W) (alleen droger/was-droogcombinatie)",
|
||
"anti_wrinkle_max_duration": "Anti-kreuk max. duur (s) (alleen droger/was-droogcombinatie)",
|
||
"anti_wrinkle_exit_power": "Anti-kreuk uitgangsvermogen (W) (alleen droger/was-droogcombinatie)"
|
||
},
|
||
"data_description": {
|
||
"anti_wrinkle_enabled": "Korte trommelrotaties met laag vermogen na afloop van een cyclus negeren om spookcycli te voorkomen (alleen droger/was-droogcombinatie).",
|
||
"anti_wrinkle_max_power": "Pieken op of onder dit vermogen worden behandeld als anti-kreukrotaties in plaats van nieuwe cycli. Geldt alleen als het Anti-kreukschild is ingeschakeld.",
|
||
"anti_wrinkle_max_duration": "Maximale piekduur om als anti-kreukrotatie te beschouwen. Geldt alleen als het Anti-kreukschild is ingeschakeld.",
|
||
"anti_wrinkle_exit_power": "Als het vermogen onder dit niveau zakt, wordt de anti-kreukfunctie onmiddellijk beëindigd (echte uitschakeling). Geldt alleen als het Anti-kreukschild is ingeschakeld."
|
||
}
|
||
},
|
||
"delay_start_section": {
|
||
"name": "Detectie van uitgestelde start",
|
||
"description": "Behandel aanhoudende stand-by met laag vermogen als 'Wachten om te starten' totdat de cyclus echt begint.",
|
||
"data": {
|
||
"delay_start_detect_enabled": "Schakel detectie van vertraagde start in",
|
||
"delay_confirm_seconds": "Uitgestelde start: bevestigingstijd voor stand-by (s)",
|
||
"delay_timeout_hours": "Uitgestelde start: maximale wachttijd (u)"
|
||
},
|
||
"data_description": {
|
||
"delay_start_detect_enabled": "Indien ingeschakeld, wordt een korte stroompiek bij laag energieverbruik, gevolgd door aanhoudend stand-byvermogen, gedetecteerd als een vertraagde start. De statussensor geeft tijdens de vertraging 'Wachten op start' weer. Er wordt geen programmatijd of voortgang bijgehouden totdat de cyclus daadwerkelijk begint. Vereist dat start_threshold_w wordt ingesteld boven het drain-piekvermogen.",
|
||
"delay_confirm_seconds": "Het vermogen moet gedurende zoveel seconden tussen Stopdrempel (W) en Startdrempel (W) blijven voordat WashData naar 'Wachten om te starten' gaat. Filtert korte pieken door menunavigatie weg. Standaard: 60 s.",
|
||
"delay_timeout_hours": "Veiligheidstime-out: als de machine na dit aantal uren nog steeds in 'Wachten om te starten' staat, wordt WashData gereset naar Uit. Standaard: 8 uur."
|
||
}
|
||
},
|
||
"external_triggers_section": {
|
||
"name": "Externe triggers, deur en pauze",
|
||
"description": "Optionele externe sensor voor cycluseinde, deursensor voor pauze-/schoondetectie en schakelaar om stroom te onderbreken bij pauzeren.",
|
||
"data": {
|
||
"external_end_trigger_enabled": "Externe cycluseinde-trigger inschakelen",
|
||
"external_end_trigger": "Externe cycluseindesensor",
|
||
"external_end_trigger_inverted": "Triggerlogica omkeren (activeren bij UIT)",
|
||
"door_sensor_entity": "Deursensor",
|
||
"pause_cuts_power": "Schakel de stroom uit tijdens het pauzeren",
|
||
"switch_entity": "Schakelentiteit (voor pauze stroomuitval)",
|
||
"notify_unload_delay_minutes": "Vertraging wasgoed wachtmelding (min)"
|
||
},
|
||
"data_description": {
|
||
"external_end_trigger_enabled": "Bewaking van een externe binaire sensor inschakelen om cyclusvoltooiing te activeren.",
|
||
"external_end_trigger": "Selecteer een binaire sensorentiteit. Wanneer deze sensor activeert, eindigt de huidige cyclus met de status 'voltooid'.",
|
||
"external_end_trigger_inverted": "Standaard wordt de trigger geactiveerd wanneer de sensor AAN gaat. Vink dit vakje aan om te activeren wanneer de sensor UIT gaat.",
|
||
"door_sensor_entity": "Optionele binaire sensor voor de machinedeur (aan = open, uit = gesloten). Wanneer de deur opengaat tijdens een actieve cyclus, bevestigt WashData dat de cyclus opzettelijk is onderbroken. Nadat de cyclus is afgelopen en de deur nog steeds gesloten is, verandert de status in 'Reinigen' totdat de deur wordt geopend. Let op: als u de deur sluit, wordt een gepauzeerde cyclus NIET automatisch hervat; het hervatten moet handmatig worden geactiveerd via de knop Cyclus hervatten of via de service.",
|
||
"pause_cuts_power": "Wanneer u pauzeert via de knop Pause Cycle of service, schakelt u ook de geconfigureerde switch-entiteit uit. Wordt alleen van kracht als er voor dit apparaat een switch-entiteit is geconfigureerd.",
|
||
"switch_entity": "De schakelentiteit die moet worden omgeschakeld tijdens het pauzeren of hervatten. Vereist wanneer 'Cut Power When Pausing' is ingeschakeld.",
|
||
"notify_unload_delay_minutes": "Stuur een melding via het finishmeldingskanaal nadat de cyclus is afgelopen en de deur al zoveel minuten niet is geopend (vereist Door Sensor). Stel in op 0 om uit te schakelen. Standaard: 60 minuten."
|
||
}
|
||
},
|
||
"pump_section": {
|
||
"name": "Pompmonitor",
|
||
"description": "Alleen voor apparaattype pomp. Genereert een gebeurtenis als een pompcyclus langer dan deze duur loopt.",
|
||
"data": {
|
||
"pump_stuck_duration": "Waarschuwingsdrempel(s) voor pomp vastgelopen (alleen pomp)"
|
||
},
|
||
"data_description": {
|
||
"pump_stuck_duration": "Als een pompcyclus na dit aantal seconden nog steeds actief is, wordt er één keer een ha_washdata_pump_stuck-gebeurtenis geactiveerd. Gebruik dit om een vastgelopen motor te detecteren (de typische pomplooptijd van de pomp bedraagt minder dan 60 s). Standaard: 1800 s (30 min). Alleen type pompapparaat."
|
||
}
|
||
},
|
||
"device_link_section": {
|
||
"name": "Apparaatkoppeling",
|
||
"description": "Koppel dit WashData-apparaat optioneel aan een bestaand Home Assistant-apparaat (bijvoorbeeld de slimme stekker of het apparaat zelf). Het WashData-apparaat wordt dan weergegeven als \"Verbonden via\" dat apparaat. Laat dit leeg om WashData als zelfstandig apparaat te behouden.",
|
||
"data": {
|
||
"linked_device": "Gekoppeld apparaat"
|
||
},
|
||
"data_description": {
|
||
"linked_device": "Selecteer het apparaat waarmee u WashData wilt verbinden. Dit voegt een 'Verbonden via'-referentie toe in het apparaatregister; WashData behoudt zijn eigen apparaatkaart en entiteiten. Wis de selectie om de link te verwijderen."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"diagnostics": {
|
||
"title": "Diagnostiek & Onderhoud",
|
||
"description": "Voer onderhoudsacties uit, zoals het samenvoegen van gefragmenteerde cycli of het migreren van opgeslagen gegevens.\n\n**Opslaggebruik**\n\n- Bestandsgrootte: {file_size_kb} KB\n- Cycli: {cycle_count}\n- Profielen: {profile_count}\n- Debugsporen: {debug_count}",
|
||
"menu_options": {
|
||
"reprocess_history": "Onderhoud: gegevens opnieuw verwerken en optimaliseren",
|
||
"clear_debug_data": "Debuggegevens wissen (ruimte vrijmaken)",
|
||
"wipe_history": "ALLE gegevens voor dit apparaat wissen (onomkeerbaar)",
|
||
"export_import": "JSON exporteren/importeren met instellingen (kopiëren/plakken)",
|
||
"menu_back": "← Terug"
|
||
}
|
||
},
|
||
"clear_debug_data": {
|
||
"title": "Debuggegevens wissen",
|
||
"description": "Weet u zeker dat u alle opgeslagen debugsporen wilt verwijderen? Hierdoor wordt ruimte vrijgemaakt, maar worden gedetailleerde rangschikkingsgegevens uit eerdere cycli verwijderd."
|
||
},
|
||
"manage_cycles": {
|
||
"title": "Cycli beheren",
|
||
"description": "Recente cycli:\n{recent_cycles}",
|
||
"menu_options": {
|
||
"auto_label_cycles": "Oude cycli automatisch labelen",
|
||
"select_cycle_to_label": "Specifieke cyclus labelen",
|
||
"select_cycle_to_delete": "Cyclus verwijderen",
|
||
"interactive_editor": "Interactieve editor samenvoegen/splitsen",
|
||
"trim_cycle_select": "Cyclusgegevens trimmen",
|
||
"menu_back": "← Terug"
|
||
}
|
||
},
|
||
"manage_cycles_empty": {
|
||
"title": "Cycli beheren",
|
||
"description": "Er zijn nog geen cycli geregistreerd.",
|
||
"menu_options": {
|
||
"auto_label_cycles": "Oude cycli automatisch labelen",
|
||
"menu_back": "← Terug"
|
||
}
|
||
},
|
||
"manage_profiles": {
|
||
"title": "Profielen beheren",
|
||
"description": "Profieloverzicht:\n{profile_summary}",
|
||
"menu_options": {
|
||
"create_profile": "Nieuw profiel maken",
|
||
"edit_profile": "Profiel bewerken/hernoemen",
|
||
"delete_profile_select": "Profiel verwijderen",
|
||
"profile_stats": "Profielstatistieken",
|
||
"cleanup_profile": "Geschiedenis opschonen - Grafiek & verwijderen",
|
||
"assign_profile_phases_select": "Fasebereiken toewijzen",
|
||
"menu_back": "← Terug"
|
||
}
|
||
},
|
||
"manage_profiles_empty": {
|
||
"title": "Profielen beheren",
|
||
"description": "Er zijn nog geen profielen aangemaakt.",
|
||
"menu_options": {
|
||
"create_profile": "Nieuw profiel maken",
|
||
"menu_back": "← Terug"
|
||
}
|
||
},
|
||
"manage_phase_catalog": {
|
||
"title": "Fasecatalogus beheren",
|
||
"description": "Fasecatalogus (standaardinstellingen voor dit apparaat + aangepaste fasen):\n{phase_summary}",
|
||
"menu_options": {
|
||
"phase_catalog_create": "Nieuwe fase maken",
|
||
"phase_catalog_edit_select": "Fase bewerken",
|
||
"phase_catalog_delete": "Fase verwijderen",
|
||
"menu_back": "← Terug"
|
||
}
|
||
},
|
||
"phase_catalog_create": {
|
||
"title": "Aangepaste fase maken",
|
||
"description": "Maak een aangepaste fasenaam en beschrijving en kies op welk apparaattype deze van toepassing is.",
|
||
"data": {
|
||
"target_device_type": "Doeltype apparaat",
|
||
"phase_name": "Fasenaam",
|
||
"phase_description": "Fasebeschrijving"
|
||
}
|
||
},
|
||
"phase_catalog_edit_select": {
|
||
"title": "Aangepaste fase bewerken",
|
||
"description": "Selecteer een aangepaste fase om te bewerken.",
|
||
"data": {
|
||
"phase_name": "Aangepaste fase"
|
||
}
|
||
},
|
||
"phase_catalog_edit": {
|
||
"title": "Aangepaste fase bewerken",
|
||
"description": "Fase bewerken: {phase_name}",
|
||
"data": {
|
||
"phase_name": "Fasenaam",
|
||
"phase_description": "Fasebeschrijving"
|
||
}
|
||
},
|
||
"phase_catalog_delete": {
|
||
"title": "Aangepaste fase verwijderen",
|
||
"description": "Selecteer een aangepaste fase om te verwijderen. Alle toegewezen bereiken die deze fase gebruiken, worden verwijderd.",
|
||
"data": {
|
||
"phase_name": "Aangepaste fase"
|
||
}
|
||
},
|
||
"assign_profile_phases": {
|
||
"title": "Fasebereiken toewijzen",
|
||
"description": "Faseoverzicht voor profiel: **{profile_name}**\n\n{timeline_svg}\n\n**Huidige bereiken:**\n{current_ranges}\n\nGebruik de onderstaande acties om bereiken toe te voegen, te bewerken, te verwijderen of op te slaan.",
|
||
"menu_options": {
|
||
"assign_profile_phases_add": "Fasebereik toevoegen",
|
||
"assign_profile_phases_edit_select": "Fasebereik bewerken",
|
||
"assign_profile_phases_delete": "Fasebereik verwijderen",
|
||
"phase_ranges_clear": "Alle bereiken wissen",
|
||
"assign_profile_phases_auto_detect": "Fasen automatisch detecteren",
|
||
"phase_ranges_save": "Opslaan en terug",
|
||
"menu_back": "← Terug"
|
||
}
|
||
},
|
||
"assign_profile_phases_add": {
|
||
"title": "Fasebereik toevoegen",
|
||
"description": "Voeg één fasebereik toe aan het huidige concept.",
|
||
"data": {
|
||
"phase_name": "Fase",
|
||
"start_min": "Startminuut",
|
||
"end_min": "Eindminuut"
|
||
}
|
||
},
|
||
"assign_profile_phases_edit_select": {
|
||
"title": "Fasebereik bewerken",
|
||
"description": "Selecteer een bereik om te bewerken.",
|
||
"data": {
|
||
"range_index": "Fasebereik"
|
||
}
|
||
},
|
||
"assign_profile_phases_edit": {
|
||
"title": "Fasebereik bewerken",
|
||
"description": "Werk het geselecteerde fasebereik bij.",
|
||
"data": {
|
||
"phase_name": "Fase",
|
||
"start_min": "Startminuut",
|
||
"end_min": "Eindminuut"
|
||
}
|
||
},
|
||
"assign_profile_phases_delete": {
|
||
"title": "Fasebereik verwijderen",
|
||
"description": "Selecteer een bereik om uit het concept te verwijderen.",
|
||
"data": {
|
||
"range_index": "Fasebereik"
|
||
}
|
||
},
|
||
"assign_profile_phases_auto_detect": {
|
||
"title": "Automatisch gedetecteerde fasen",
|
||
"description": "Profiel: **{profile_name}**\n\n{timeline_svg}\n\n**{detected_count} fase(s) automatisch gedetecteerd.** Kies hieronder een actie.",
|
||
"data": {
|
||
"action": "Actie"
|
||
}
|
||
},
|
||
"assign_profile_phases_auto_detect_name": {
|
||
"title": "Gedetecteerde fasen een naam geven",
|
||
"description": "Profiel: **{profile_name}**\n\n**{detected_count} fase(s) gedetecteerd:**\n{ranges_summary}\n\nGeef elke fase een naam."
|
||
},
|
||
"assign_profile_phases_select": {
|
||
"title": "Fasebereiken toewijzen",
|
||
"description": "Selecteer een profiel om fasebereiken te configureren.",
|
||
"data": {
|
||
"profile": "Profiel"
|
||
}
|
||
},
|
||
"profile_stats": {
|
||
"title": "Profielstatistieken",
|
||
"description": "{stats_table}"
|
||
},
|
||
"create_profile": {
|
||
"title": "Nieuw profiel maken",
|
||
"description": "Maak handmatig of op basis van een eerdere cyclus een nieuw profiel aan.\n\nVoorbeelden van profielnamen: 'Fijne was', 'Intensief', 'Snelwas'",
|
||
"data": {
|
||
"profile_name": "Profielnaam",
|
||
"reference_cycle": "Referentiecyclus (optioneel)",
|
||
"manual_duration": "Handmatige duur (minuten)"
|
||
}
|
||
},
|
||
"edit_profile": {
|
||
"title": "Profiel bewerken",
|
||
"description": "Selecteer een profiel om de naam van te wijzigen",
|
||
"data": {
|
||
"profile": "Profiel"
|
||
}
|
||
},
|
||
"rename_profile": {
|
||
"title": "Profielgegevens bewerken",
|
||
"description": "Huidig profiel: {current_name}",
|
||
"data": {
|
||
"new_name": "Profielnaam",
|
||
"manual_duration": "Handmatige duur (minuten)"
|
||
}
|
||
},
|
||
"delete_profile_select": {
|
||
"title": "Profiel verwijderen",
|
||
"description": "Selecteer een profiel om te verwijderen",
|
||
"data": {
|
||
"profile": "Profiel"
|
||
}
|
||
},
|
||
"delete_profile_confirm": {
|
||
"title": "Verwijderen van profiel bevestigen",
|
||
"description": "⚠️ Dit verwijdert het profiel permanent: {profile_name}",
|
||
"data": {
|
||
"unlabel_cycles": "Label verwijderen van cycli die dit profiel gebruiken"
|
||
}
|
||
},
|
||
"auto_label_cycles": {
|
||
"title": "Oude cycli automatisch labelen",
|
||
"description": "In totaal {total_count} cycli gevonden. Profielen: {profiles}",
|
||
"data": {
|
||
"confidence_threshold": "Minimaal vertrouwen (0,50-0,95)"
|
||
}
|
||
},
|
||
"select_cycle_to_label": {
|
||
"title": "Selecteer cyclus om te labelen",
|
||
"description": "✓ = voltooid, ⚠ = hervat, ✗ = onderbroken",
|
||
"data": {
|
||
"cycle_id": "Cyclus"
|
||
}
|
||
},
|
||
"select_cycle_to_delete": {
|
||
"title": "Cyclus verwijderen",
|
||
"description": "⚠️ Dit verwijdert de geselecteerde cyclus permanent",
|
||
"data": {
|
||
"cycle_id": "Te verwijderen cyclus"
|
||
}
|
||
},
|
||
"label_cycle": {
|
||
"title": "Cyclus labelen",
|
||
"description": "{cycle_info}",
|
||
"data": {
|
||
"profile_name": "Profiel",
|
||
"new_profile_name": "Nieuwe profielnaam (indien aan te maken)"
|
||
}
|
||
},
|
||
"post_process": {
|
||
"title": "Geschiedenis verwerken (samenvoegen/splitsen)",
|
||
"description": "Ruim de cyclusgeschiedenis op door gefragmenteerde runs samen te voegen en onjuist samengevoegde cycli binnen een tijdsvenster op te splitsen. Voer het aantal uren in dat u wilt terugkijken (gebruik 999999 voor alles).",
|
||
"data": {
|
||
"time_range": "Terugkijkperiode (uren)",
|
||
"gap_seconds": "Samenvoeg-/splitsingsdrempel (seconden)"
|
||
},
|
||
"data_description": {
|
||
"time_range": "Aantal uren dat moet worden gescand om gefragmenteerde cycli samen te voegen. Gebruik 999999 om alle historische gegevens te verwerken.",
|
||
"gap_seconds": "Drempel om te beslissen of cycli worden gesplitst of samengevoegd. Gaten KORTER dan dit worden samengevoegd. Gaten LANGER dan dit worden gesplitst. Verlaag dit om een splitsing te forceren voor een onjuist samengevoegde cyclus."
|
||
}
|
||
},
|
||
"cleanup_profile": {
|
||
"title": "Geschiedenis opschonen - Profiel selecteren",
|
||
"description": "Selecteer een profiel om te visualiseren. Er wordt een grafiek gegenereerd met alle eerdere cycli voor dit profiel om uitschieters te kunnen identificeren.",
|
||
"data": {
|
||
"profile": "Profiel"
|
||
}
|
||
},
|
||
"cleanup_select": {
|
||
"title": "Geschiedenis opschonen - Grafiek & verwijderen",
|
||
"description": "\n\n**{profile_name} wordt gevisualiseerd**\n\nDe grafiek toont individuele cycli als gekleurde lijnen. Identificeer uitschieters (lijnen ver van de groep) en match hun kleur in de onderstaande lijst om ze te verwijderen.\n\n**Selecteer cycli om PERMANENT te verwijderen:**",
|
||
"data": {
|
||
"cycles_to_delete": "Te verwijderen cycli (controleer overeenkomende kleuren)"
|
||
}
|
||
},
|
||
"interactive_editor": {
|
||
"title": "Interactieve editor samenvoegen/splitsen",
|
||
"description": "Selecteer een handmatige actie om uit te voeren op uw cyclusgeschiedenis.",
|
||
"menu_options": {
|
||
"editor_split": "Cyclus splitsen (gaten zoeken)",
|
||
"editor_merge": "Cycli samenvoegen (fragmenten combineren)",
|
||
"editor_delete": "Cyclus(sen) verwijderen",
|
||
"menu_back": "← Terug"
|
||
}
|
||
},
|
||
"editor_select": {
|
||
"title": "Cycli selecteren",
|
||
"description": "Selecteer de cyclus(sen) om te verwerken.\n\n{info_text}",
|
||
"data": {
|
||
"selected_cycles": "Cycli"
|
||
}
|
||
},
|
||
"editor_configure": {
|
||
"title": "Configureren en toepassen",
|
||
"description": "{preview_md}",
|
||
"data": {
|
||
"confirm_action": "Actie",
|
||
"merged_profile": "Resulterend profiel",
|
||
"new_profile_name": "Nieuwe profielnaam",
|
||
"confirm_commit": "Ja, ik bevestig deze actie",
|
||
"segment_0_profile": "Segment 1-profiel",
|
||
"segment_1_profile": "Segment 2-profiel",
|
||
"segment_2_profile": "Segment 3-profiel",
|
||
"segment_3_profile": "Segment 4-profiel",
|
||
"segment_4_profile": "Segment 5-profiel",
|
||
"segment_5_profile": "Segment 6-profiel",
|
||
"segment_6_profile": "Segment 7-profiel",
|
||
"segment_7_profile": "Segment 8-profiel",
|
||
"segment_8_profile": "Segment 9-profiel",
|
||
"segment_9_profile": "Segment 10-profiel"
|
||
}
|
||
},
|
||
"editor_split_params": {
|
||
"title": "Splitsingsconfiguratie",
|
||
"description": "Pas de gevoeligheid aan voor het splitsen van deze cyclus. Elke inactieve opening langer dan dit veroorzaakt een splitsing.",
|
||
"data": {
|
||
"split_mode": "Splitsingsmethode"
|
||
}
|
||
},
|
||
"editor_split_auto_params": {
|
||
"title": "Configuratie voor automatisch splitsen",
|
||
"description": "Pas de gevoeligheid voor het splitsen van deze cyclus aan. Elke inactieve onderbreking die langer is dan dit veroorzaakt een splitsing.",
|
||
"data": {
|
||
"min_gap_seconds": "Drempel voor splitsingspauze (seconden)"
|
||
}
|
||
},
|
||
"editor_split_manual_params": {
|
||
"title": "Handmatige splitsingstijdstempels",
|
||
"description": "{preview_md}Cyclusvenster: **{cycle_start_wallclock} → {cycle_end_wallclock}** op {cycle_date}.\n\nVoer een of meer splitsingstijdstempels in (`HH:MM` of `HH:MM:SS`), één per regel. De cyclus wordt bij elk tijdstempel gesplitst — N tijdstempels leveren N+1 segmenten op.",
|
||
"data": {
|
||
"split_timestamps": "Splitsingstijdstempels"
|
||
}
|
||
},
|
||
"reprocess_history": {
|
||
"title": "Onderhoud: gegevens opnieuw verwerken en optimaliseren",
|
||
"description": "Voert een grondige opschoning van historische gegevens uit:\n1. Trimt nulvermogenmetingen (stilte).\n2. Herstelt cyclustigming/-duur.\n3. Herberekent alle statistische modellen (enveloppen).\n\n**Voer dit uit om gegevensproblemen op te lossen of nieuwe algoritmen toe te passen.**"
|
||
},
|
||
"wipe_history": {
|
||
"title": "Geschiedenis wissen (alleen voor testen)",
|
||
"description": "⚠️ Dit verwijdert ALLE opgeslagen cycli en profielen voor dit apparaat permanent. Dit kan niet ongedaan worden gemaakt!"
|
||
},
|
||
"export_import": {
|
||
"title": "JSON exporteren/importeren",
|
||
"description": "Kopieer/plak cycli, profielen en instellingen voor dit apparaat. Exporteer hieronder of plak JSON om te importeren.",
|
||
"data": {
|
||
"mode": "Actie",
|
||
"json_payload": "Volledige configuratie-JSON"
|
||
},
|
||
"data_description": {
|
||
"mode": "Kies Exporteren om de huidige gegevens en instellingen te kopiëren, of Importeren om geëxporteerde gegevens van een ander WashData-apparaat te plakken.",
|
||
"json_payload": "Voor exporteren: kopieer deze JSON (inclusief cycli, profielen en alle verfijnde instellingen). Voor importeren: plak JSON geëxporteerd vanuit WashData."
|
||
}
|
||
},
|
||
"record_cycle": {
|
||
"title": "Cyclus opnemen",
|
||
"description": "Neem handmatig een cyclus op om een schoon profiel zonder interferentie te maken.\n\nStatus: **{status}**\nDuur: {duration}s\nSamples: {samples}",
|
||
"menu_options": {
|
||
"record_refresh": "Status vernieuwen",
|
||
"record_stop": "Opname stoppen (opslaan en verwerken)",
|
||
"record_start": "Nieuwe opname starten",
|
||
"record_process": "Laatste opname verwerken (trimmen en opslaan)",
|
||
"record_discard": "Laatste opname verwijderen",
|
||
"menu_back": "← Terug"
|
||
}
|
||
},
|
||
"record_process": {
|
||
"title": "Opname verwerken",
|
||
"description": "\n\n**Grafiek toont ruwe opname.** Blauw = bewaren, rood = voorgestelde trim.\n*Grafiek is statisch en wordt niet bijgewerkt bij formulierwijzigingen.*\n\nOpname gestopt. Trims worden uitgelijnd op de gedetecteerde bemonsteringsfrequentie (~{sampling_rate}s).\n\nRuwe duur: {duration}s\nSamples: {samples}",
|
||
"data": {
|
||
"head_trim": "Trim begin (seconden)",
|
||
"tail_trim": "Trim einde (seconden)",
|
||
"save_mode": "Opslagbestemming",
|
||
"profile_name": "Profielnaam"
|
||
}
|
||
},
|
||
"learning_feedbacks": {
|
||
"title": "Leerfeedback",
|
||
"description": "Openstaande feedback: {count}\n\n{pending_table}\n\nSelecteer een cyclusbeoordelingsverzoek om te verwerken.",
|
||
"menu_options": {
|
||
"learning_feedbacks_pick": "Openstaande feedback beoordelen",
|
||
"learning_feedbacks_dismiss_all": "Alle openstaande feedback negeren",
|
||
"menu_back": "← Terug"
|
||
}
|
||
},
|
||
"learning_feedbacks_pick": {
|
||
"title": "Feedback selecteren om te bekijken",
|
||
"description": "Selecteer een cyclusbeoordelingsverzoek om te openen.",
|
||
"data": {
|
||
"selected_feedback": "Cyclus selecteren om te bekijken"
|
||
}
|
||
},
|
||
"learning_feedbacks_empty": {
|
||
"title": "Leerfeedback",
|
||
"description": "Geen openstaande feedbackverzoeken gevonden.",
|
||
"menu_options": {
|
||
"menu_back": "← Terug"
|
||
}
|
||
},
|
||
"learning_feedbacks_dismiss_all": {
|
||
"title": "Alle openstaande feedback afwijzen",
|
||
"description": "U staat op het punt **{count}** openstaande feedbackverzoeken af te wijzen. Afgewezen cycli blijven in uw geschiedenis staan, maar leveren geen nieuw leersignaal op. Dit kan niet ongedaan worden gemaakt.\n\n✅ Vink het onderstaande vakje aan en klik op **Verzenden** om alles af te wijzen.\n❌ Laat het uitgeschakeld en klik op **Verzenden** om te annuleren en terug te gaan.",
|
||
"data": {
|
||
"confirm_dismiss_all": "Bevestigen: alle openstaande feedbackverzoeken negeren"
|
||
}
|
||
},
|
||
"resolve_feedback": {
|
||
"title": "Feedback verwerken",
|
||
"description": "{comparison_img}{candidates_table}\n**Gedetecteerd profiel**: {detected_profile} ({confidence_pct}%)\n**Geschatte duur**: {est_duration_min} min\n**Werkelijke duur**: {act_duration_min} min\n\n__Kies hieronder een actie:__",
|
||
"data": {
|
||
"action": "Wat wilt u doen?",
|
||
"corrected_profile": "Correct programma (indien gecorrigeerd)",
|
||
"corrected_duration": "Gecorrigeerde duur in seconden (indien gecorrigeerd)"
|
||
}
|
||
},
|
||
"trim_cycle_select": {
|
||
"title": "Cyclus trimmen - Cyclus selecteren",
|
||
"description": "Selecteer een cyclus om te trimmen. ✓ = voltooid, ⚠ = hervat, ✗ = onderbroken",
|
||
"data": {
|
||
"cycle_id": "Cyclus"
|
||
}
|
||
},
|
||
"trim_cycle": {
|
||
"title": "Cyclus trimmen",
|
||
"description": "Huidig venster: {trim_summary}\n\n{trim_svg}",
|
||
"data": {
|
||
"action": "Actie"
|
||
}
|
||
},
|
||
"trim_cycle_start": {
|
||
"title": "Trimbegin instellen",
|
||
"description": "Cyclusvenster: {cycle_start_wallclock} → {cycle_end_wallclock}\n\nHuidige start: **{current_wallclock}** (+{current_offset_min} min vanaf cyclusstart)\n\nKies een nieuwe starttijd met behulp van de klokkiezer hieronder.",
|
||
"data": {
|
||
"trim_start_time": "Nieuwe starttijd",
|
||
"trim_start_min": "Nieuwe start (minuten vanaf het begin van de cyclus)"
|
||
}
|
||
},
|
||
"trim_cycle_end": {
|
||
"title": "Trimeinde instellen",
|
||
"description": "Cyclusvenster: {cycle_start_wallclock} → {cycle_end_wallclock}\n\nHuidig einde: **{current_wallclock}** (+{current_offset_min} min vanaf cyclusstart)\n\nKies een nieuwe eindtijd met behulp van de klokkiezer hieronder.",
|
||
"data": {
|
||
"trim_end_time": "Nieuwe eindtijd",
|
||
"trim_end_min": "Nieuw einde (minuten vanaf het begin van de cyclus)"
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"import_failed": "Importeren mislukt. Plak een geldige WashData-export-JSON.",
|
||
"select_exactly_one": "Selecteer precies één cyclus voor deze actie.",
|
||
"select_at_least_one": "Selecteer minimaal één cyclus voor deze actie.",
|
||
"select_at_least_two": "Selecteer minimaal twee cycli voor deze actie.",
|
||
"profile_exists": "Er bestaat al een profiel met deze naam",
|
||
"rename_failed": "Naam van profiel wijzigen mislukt. Het profiel bestaat mogelijk niet of de nieuwe naam is al in gebruik.",
|
||
"assignment_failed": "Toewijzen van profiel aan cyclus mislukt",
|
||
"duplicate_phase": "Er bestaat al een fase met deze naam.",
|
||
"phase_not_found": "Geselecteerde fase niet gevonden.",
|
||
"invalid_phase_name": "Fasenaam mag niet leeg zijn.",
|
||
"phase_name_too_long": "Fasenaam is te lang.",
|
||
"invalid_phase_range": "Fasebereik is ongeldig. Het einde moet na het begin liggen.",
|
||
"invalid_phase_timestamp": "Tijdstempel is ongeldig. Gebruik het formaat JJJJ-MM-DD UU:MM of UU:MM.",
|
||
"overlapping_phase_ranges": "Fasebereiken overlappen. Pas de bereiken aan en probeer opnieuw.",
|
||
"incomplete_phase_row": "Elke faserij moet een fase en volledige start-/eindwaarden voor de geselecteerde modus bevatten.",
|
||
"timestamp_mode_cycle_required": "Selecteer een broncyclus wanneer u de tijdstempelmodus gebruikt.",
|
||
"no_phase_ranges": "Er zijn nog geen fasebereiken beschikbaar voor die actie.",
|
||
"feedback_notification_title": "WashData: cyclus verifiëren ({device})",
|
||
"feedback_notification_message": "**Apparaat**: {device}\n**Programma**: {program} ({confidence}% betrouwbaarheid)\n**Tijd**: {time}\n\nWashData heeft uw hulp nodig om deze gedetecteerde cyclus te verifiëren.\n\nGa naar **Instellingen > Apparaten en services > WashData > Configureren > Leerfeedback** om dit resultaat te bevestigen of te corrigeren.",
|
||
"suggestions_ready_notification_title": "WashData: voorgestelde instellingen gereed ({device})",
|
||
"suggestions_ready_notification_message": "De sensor **Voorgestelde instellingen** rapporteert nu **{count}** bruikbare aanbevelingen.\n\nOm ze te bekijken en toe te passen: **Instellingen > Apparaten en services > WashData > Configureren > Geavanceerde instellingen > Voorgestelde waarden toepassen**.\n\nSuggesties zijn optioneel en worden ter beoordeling getoond voordat u ze opslaat.",
|
||
"trim_range_invalid": "Begin moet vóór het einde liggen. Pas uw trimpunten aan.",
|
||
"trim_failed": "Trimmen mislukt. De cyclus bestaat mogelijk niet meer of het venster is leeg.",
|
||
"invalid_split_timestamp": "Tijdstempel is ongeldig of valt buiten het cyclusvenster. Gebruik HH:MM of HH:MM:SS binnen het cyclusvenster.",
|
||
"no_split_segments_found": "Er konden geen geldige segmenten uit deze tijdstempels worden gemaakt. Zorg ervoor dat elke tijdstempel binnen het cyclusvenster valt en dat segmenten minstens 1 minuut lang zijn.",
|
||
"auto_tune_suggestion": "{device_type} {device_title} heeft spookcycli gedetecteerd. Voorgestelde min_power wijziging: {current_min}W -> {new_min}W (niet automatisch toegepast).",
|
||
"auto_tune_title": "WashData automatisch afstemmen",
|
||
"auto_tune_fallback": "{device_type} {device_title} heeft spookcycli gedetecteerd. Voorgestelde min_power wijziging: {current_min}W -> {new_min}W (niet automatisch toegepast)."
|
||
},
|
||
"abort": {
|
||
"no_cycles_found": "Geen cycli gevonden",
|
||
"no_split_segments_found": "Er zijn geen splitsbare segmenten gevonden in de geselecteerde cyclus.",
|
||
"cycle_not_found": "De geselecteerde cyclus kon niet worden geladen.",
|
||
"no_power_data": "Geen vermogensspoorgegevens beschikbaar voor de geselecteerde cyclus.",
|
||
"no_profiles_found": "Geen profielen gevonden. Maak eerst een profiel aan.",
|
||
"no_profiles_for_matching": "Geen profielen beschikbaar voor matching. Maak eerst profielen aan.",
|
||
"no_unlabeled_cycles": "Alle cycli zijn al gelabeld",
|
||
"no_suggestions": "Nog geen voorgestelde waarden beschikbaar. Voer een paar cycli uit en probeer opnieuw.",
|
||
"no_predictions": "Geen voorspellingen",
|
||
"no_custom_phases": "Geen aangepaste fasen gevonden.",
|
||
"reprocess_success": "{count} cycli opnieuw verwerkt.",
|
||
"debug_data_cleared": "Debuggegevens van {count} cycli gewist."
|
||
}
|
||
},
|
||
"selector": {
|
||
"notify_events_option": {
|
||
"options": {
|
||
"cycle_start": "Cyclus gestart",
|
||
"cycle_finish": "Cyclus voltooid",
|
||
"cycle_live": "Live voortgang"
|
||
}
|
||
},
|
||
"common_text": {
|
||
"options": {
|
||
"unlabeled": "(Ongelabeld)",
|
||
"create_new_profile": "Nieuw profiel maken",
|
||
"remove_label": "Label verwijderen",
|
||
"no_reference_cycle": "(Geen referentiecyclus)",
|
||
"all_device_types": "Alle apparaattypen",
|
||
"current_suffix": "(huidig)",
|
||
"editor_select_info": "Selecteer 1 cyclus om te splitsen, of 2+ cycli om samen te voegen.",
|
||
"editor_select_info_split": "Selecteer 1 cyclus om te splitsen.",
|
||
"editor_select_info_merge": "Selecteer 2 of meer cycli om samen te voegen.",
|
||
"editor_select_info_delete": "Selecteer 1 of meer cycli om te verwijderen.",
|
||
"no_cycles_recorded": "Er zijn nog geen cycli geregistreerd.",
|
||
"profile_summary_line": "- **{name}**: {count} cycli, {avg}m gem",
|
||
"no_profiles_created": "Er zijn nog geen profielen aangemaakt.",
|
||
"phase_preview": "Faseoverzicht",
|
||
"phase_preview_no_curve": "De gemiddelde profielcurve is nog niet beschikbaar. Voer meer cycli uit of label ze voor dit profiel.",
|
||
"average_power_curve": "Gemiddelde vermogenscurve",
|
||
"unit_min": "min",
|
||
"profile_option_fmt": "{name} ({count} cycli, ~{duration} min gem)",
|
||
"profile_option_short_fmt": "{name} ({count} cycli, ~{duration} min)",
|
||
"deleted_cycles_from_profile": "{count} cycli verwijderd van {profile}.",
|
||
"not_enough_data_graph": "Onvoldoende gegevens om grafiek te genereren.",
|
||
"no_profiles_found": "Geen profielen gevonden.",
|
||
"cycle_info_fmt": "Cyclus: {start}, {duration} min, Huidig: {label}",
|
||
"top_candidates_header": "### Topkandidaten",
|
||
"tbl_profile": "Profiel",
|
||
"tbl_confidence": "Betrouwbaarheid",
|
||
"tbl_correlation": "Correlatie",
|
||
"tbl_duration_match": "Duurovereenkomst",
|
||
"detected_profile": "Gedetecteerd profiel",
|
||
"estimated_duration": "Geschatte duur",
|
||
"actual_duration": "Werkelijke duur",
|
||
"choose_action": "__Kies hieronder een actie:__",
|
||
"tbl_count": "Aantal",
|
||
"tbl_avg": "Gem",
|
||
"tbl_min": "Min",
|
||
"tbl_max": "Max",
|
||
"tbl_energy_avg": "Energie (gem)",
|
||
"tbl_energy_total": "Energie (totaal)",
|
||
"tbl_consistency": "Consist.",
|
||
"tbl_last_run": "Laatste cyclus",
|
||
"graph_legend_title": "Grafieklegenda",
|
||
"graph_legend_body": "De blauwe band vertegenwoordigt het waargenomen minimale en maximale vermogensbereik. De lijn toont de gemiddelde vermogenscurve.",
|
||
"recording_preview": "Opnameoverzicht",
|
||
"trim_start": "Trim begin",
|
||
"trim_end": "Trim einde",
|
||
"split_preview_title": "Splitsingsoverzicht",
|
||
"split_preview_found_fmt": "{count} segmenten gevonden.",
|
||
"split_preview_confirm_fmt": "Klik op Bevestigen om deze cyclus op te splitsen in {count} afzonderlijke cycli.",
|
||
"merge_preview_title": "Samenvoegingsoverzicht",
|
||
"merge_preview_joining_fmt": "{count} cycli samenvoegen. Gaten worden gevuld met 0W-metingen.",
|
||
"editor_delete_preview_title": "Voorbeeld verwijderen",
|
||
"editor_delete_preview_intro": "De geselecteerde cycli worden permanent verwijderd:",
|
||
"editor_delete_preview_confirm": "Klik op Bevestigen om deze cyclusrecords permanent te verwijderen.",
|
||
"no_power_preview": "*Geen vermogensgegevens beschikbaar voor overzicht.*",
|
||
"profile_comparison": "Profielvergelijking",
|
||
"actual_cycle_label": "Deze cyclus (werkelijk)",
|
||
"storage_usage_header": "Opslaggebruik",
|
||
"storage_file_size": "Bestandsgrootte",
|
||
"storage_cycles": "Cycli",
|
||
"storage_profiles": "Profielen",
|
||
"storage_debug_traces": "Debugsporen",
|
||
"overview_suffix": "Overzicht",
|
||
"phase_preview_for_profile": "Faseoverzicht voor profiel",
|
||
"current_ranges_header": "Huidige bereiken",
|
||
"assign_phases_help": "Gebruik de onderstaande acties om bereiken toe te voegen, te bewerken, te verwijderen of op te slaan.",
|
||
"profile_summary_header": "Profieloverzicht",
|
||
"recent_cycles_header": "Recente cycli",
|
||
"trim_cycle_preview_title": "Cyclustrimoverzicht",
|
||
"trim_cycle_preview_no_data": "Geen vermogensgegevens beschikbaar voor deze cyclus.",
|
||
"trim_cycle_preview_kept_suffix": "bewaard",
|
||
"table_program": "Programma",
|
||
"table_when": "Wanneer",
|
||
"table_length": "Duur",
|
||
"table_match": "Overeenkomst",
|
||
"table_profile": "Profiel",
|
||
"table_cycles": "Cycli",
|
||
"table_avg_length": "Gem. duur",
|
||
"table_last_run": "Laatste cyclus",
|
||
"table_avg_energy": "Gem. energie",
|
||
"table_detected_program": "Gedetecteerd programma",
|
||
"table_confidence": "Betrouwbaarheid",
|
||
"table_reported": "Gemeld",
|
||
"phase_builtin_suffix": "(ingebouwd)",
|
||
"phase_none_available": "Geen fasen beschikbaar.",
|
||
"settings_deprecation_warning": "⚠️ **Verouderd apparaattype:** {device_type} zal in een toekomstige release worden verwijderd. De matchingpijplijn van WashData levert geen betrouwbare resultaten op voor deze apparaatklasse. Uw integratie blijft gedurende de beëindigingsperiode werken; Om deze waarschuwing uit te zetten, schakelt u **Apparaattype** hieronder over naar een van de ondersteunde typen (wasmachine, droger, was-droogcombinatie, vaatwasser, luchtfriteuse, broodbakmachine of pomp), of naar **Overig (geavanceerd)** als uw apparaat niet overeenkomt met een van de ondersteunde typen. **Overig (geavanceerd)** levert opzettelijk generieke standaardwaarden die niet zijn afgestemd op een specifiek apparaat, dus u zult zelf drempels, time-outs en overeenkomende parameters moeten configureren; al uw bestaande instellingen blijven behouden wanneer u overstapt.",
|
||
"phase_other_device_types": "Andere apparaattypen:"
|
||
}
|
||
},
|
||
"interactive_editor_action": {
|
||
"options": {
|
||
"split": "Cyclus splitsen (gaten zoeken)",
|
||
"merge": "Cycli samenvoegen (fragmenten combineren)",
|
||
"delete": "Cyclus(sen) verwijderen"
|
||
}
|
||
},
|
||
"split_mode": {
|
||
"options": {
|
||
"auto": "Inactieve gaten automatisch detecteren",
|
||
"manual": "Handmatige tijdstempels"
|
||
}
|
||
},
|
||
"diagnostics_action": {
|
||
"options": {
|
||
"reprocess_history": "Onderhoud: gegevens opnieuw verwerken en optimaliseren",
|
||
"clear_debug_data": "Debuggegevens wissen (ruimte vrijmaken)",
|
||
"wipe_history": "ALLE gegevens voor dit apparaat wissen (onomkeerbaar)",
|
||
"export_import": "JSON exporteren/importeren met instellingen (kopiëren/plakken)"
|
||
}
|
||
},
|
||
"export_import_mode": {
|
||
"options": {
|
||
"export": "Alle gegevens exporteren",
|
||
"import": "Gegevens importeren/samenvoegen"
|
||
}
|
||
},
|
||
"manage_cycles_action": {
|
||
"options": {
|
||
"auto_label_cycles": "Oude cycli automatisch labelen",
|
||
"select_cycle_to_label": "Specifieke cyclus labelen",
|
||
"select_cycle_to_delete": "Cyclus verwijderen",
|
||
"interactive_editor": "Interactieve editor samenvoegen/splitsen",
|
||
"trim_cycle": "Cyclusgegevens trimmen"
|
||
}
|
||
},
|
||
"manage_profiles_action": {
|
||
"options": {
|
||
"create_profile": "Nieuw profiel maken",
|
||
"edit_profile": "Profiel bewerken/hernoemen",
|
||
"delete_profile": "Profiel verwijderen",
|
||
"profile_stats": "Profielstatistieken",
|
||
"cleanup_profile": "Geschiedenis opschonen - Grafiek & verwijderen",
|
||
"assign_phases": "Fasebereiken toewijzen"
|
||
}
|
||
},
|
||
"manage_phase_catalog_action": {
|
||
"options": {
|
||
"create_custom_phase": "Nieuwe fase maken",
|
||
"edit_custom_phase": "Fase bewerken",
|
||
"delete_custom_phase": "Fase verwijderen"
|
||
}
|
||
},
|
||
"assign_profile_phases_action": {
|
||
"options": {
|
||
"add_range": "Fasebereik toevoegen",
|
||
"edit_range": "Fasebereik bewerken",
|
||
"delete_range": "Fasebereik verwijderen",
|
||
"clear_ranges": "Alle bereiken wissen",
|
||
"auto_detect_ranges": "Fasen automatisch detecteren",
|
||
"save_ranges": "Opslaan en terug"
|
||
}
|
||
},
|
||
"record_cycle_action": {
|
||
"options": {
|
||
"refresh_status": "Status vernieuwen",
|
||
"stop_recording": "Opname stoppen (opslaan en verwerken)",
|
||
"start_recording": "Nieuwe opname starten",
|
||
"process_recording": "Laatste opname verwerken (trimmen en opslaan)",
|
||
"discard_recording": "Laatste opname verwijderen"
|
||
}
|
||
},
|
||
"record_process_save_mode": {
|
||
"options": {
|
||
"new_profile": "Nieuw profiel maken",
|
||
"existing_profile": "Aan bestaand profiel toevoegen",
|
||
"discard": "Opname verwijderen"
|
||
}
|
||
},
|
||
"resolve_feedback_action": {
|
||
"options": {
|
||
"confirm": "Bevestigen - Detectie correct",
|
||
"correct": "Corrigeren - Programma/duur kiezen",
|
||
"ignore": "Negeren - Vals positief/ruizige cyclus",
|
||
"delete": "Verwijderen - Uit geschiedenis verwijderen"
|
||
}
|
||
},
|
||
"assign_profile_phases_auto_detect_action": {
|
||
"options": {
|
||
"name_phases": "Fasen een naam geven en toepassen",
|
||
"cancel": "Terug zonder wijzigingen"
|
||
}
|
||
},
|
||
"trim_cycle_action": {
|
||
"options": {
|
||
"set_start": "Beginpunt instellen",
|
||
"set_end": "Eindpunt instellen",
|
||
"reset": "Terugzetten naar volledige duur",
|
||
"apply": "Trim toepassen",
|
||
"cancel": "Annuleren"
|
||
}
|
||
},
|
||
"device_type": {
|
||
"options": {
|
||
"washing_machine": "Wasmachine",
|
||
"dryer": "Droger",
|
||
"washer_dryer": "Was-droog combinatie",
|
||
"dishwasher": "Afwasmachine",
|
||
"coffee_machine": "Koffiezetapparaat (verouderd)",
|
||
"ev": "Elektrisch voertuig (verouderd)",
|
||
"air_fryer": "Lucht friteuse",
|
||
"heat_pump": "Warmtepomp (verouderd)",
|
||
"bread_maker": "Broodbakmachine",
|
||
"pump": "Pomp / Sumppomp",
|
||
"oven": "Oven (verouderd)",
|
||
"other": "Anders (geavanceerd)"
|
||
}
|
||
}
|
||
},
|
||
"services": {
|
||
"label_cycle": {
|
||
"name": "Cyclus labelen",
|
||
"description": "Wijs een bestaand profiel toe aan een eerdere cyclus of verwijder het label.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Apparaat",
|
||
"description": "Het WashData-apparaat om te labelen."
|
||
},
|
||
"cycle_id": {
|
||
"name": "Cyclus-ID",
|
||
"description": "De ID van de te labelen cyclus."
|
||
},
|
||
"profile_name": {
|
||
"name": "Profielnaam",
|
||
"description": "De naam van een bestaand profiel (maak profielen aan in het menu Profielen beheren). Laat leeg om het label te verwijderen."
|
||
}
|
||
}
|
||
},
|
||
"create_profile": {
|
||
"name": "Profiel aanmaken",
|
||
"description": "Maak een nieuw profiel aan (zelfstandig of op basis van een referentiecyclus).",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Apparaat",
|
||
"description": "Het WashData-apparaat."
|
||
},
|
||
"profile_name": {
|
||
"name": "Profielnaam",
|
||
"description": "Naam voor het nieuwe profiel (bijv. 'Intensief', 'Fijne was')."
|
||
},
|
||
"reference_cycle_id": {
|
||
"name": "Referentiecyclus-ID",
|
||
"description": "Optioneel cyclus-ID om dit profiel op te baseren."
|
||
}
|
||
}
|
||
},
|
||
"delete_profile": {
|
||
"name": "Profiel verwijderen",
|
||
"description": "Verwijder een profiel en verwijder optioneel het label van cycli die het gebruiken.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Apparaat",
|
||
"description": "Het WashData-apparaat."
|
||
},
|
||
"profile_name": {
|
||
"name": "Profielnaam",
|
||
"description": "Het te verwijderen profiel."
|
||
},
|
||
"unlabel_cycles": {
|
||
"name": "Labels van cycli verwijderen",
|
||
"description": "Verwijder het profiellabel van cycli die dit profiel gebruiken."
|
||
}
|
||
}
|
||
},
|
||
"auto_label_cycles": {
|
||
"name": "Oude cycli automatisch labelen",
|
||
"description": "Label ongelabelde cycli achteraf met behulp van profielmatching.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Apparaat",
|
||
"description": "Het WashData-apparaat."
|
||
},
|
||
"confidence_threshold": {
|
||
"name": "Betrouwbaarheidsdrempel",
|
||
"description": "Minimale matchbetrouwbaarheid (0,50-0,95) om labels toe te passen."
|
||
}
|
||
}
|
||
},
|
||
"export_config": {
|
||
"name": "Configuratie exporteren",
|
||
"description": "Exporteer de profielen, cycli en instellingen van dit apparaat naar een JSON-bestand (per apparaat).",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Apparaat",
|
||
"description": "Het WashData-apparaat om te exporteren."
|
||
},
|
||
"path": {
|
||
"name": "Pad",
|
||
"description": "Optioneel absoluut bestandspad om naar te schrijven (standaard: /config/ha_washdata_export_{entry}.json)."
|
||
}
|
||
}
|
||
},
|
||
"import_config": {
|
||
"name": "Configuratie importeren",
|
||
"description": "Importeer profielen, cycli en instellingen voor dit apparaat vanuit een JSON-exportbestand (instellingen kunnen worden overschreven).",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Apparaat",
|
||
"description": "Het WashData-apparaat om in te importeren."
|
||
},
|
||
"path": {
|
||
"name": "Pad",
|
||
"description": "Absoluut pad naar het te importeren JSON-exportbestand."
|
||
}
|
||
}
|
||
},
|
||
"submit_cycle_feedback": {
|
||
"name": "Cyclusfeedback indienen",
|
||
"description": "Bevestig of corrigeer een automatisch gedetecteerd programma na een voltooide cyclus. Geef `entry_id` (geavanceerd) of `device_id` (aanbevolen) op.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Apparaat",
|
||
"description": "Het WashData-apparaat (aanbevolen boven entry_id)."
|
||
},
|
||
"entry_id": {
|
||
"name": "Invoer-ID",
|
||
"description": "De configuratie-invoer-ID voor het apparaat (alternatief voor device_id)."
|
||
},
|
||
"cycle_id": {
|
||
"name": "Cyclus-ID",
|
||
"description": "De cyclus-ID zoals weergegeven in de feedbackmelding/logboeken."
|
||
},
|
||
"user_confirmed": {
|
||
"name": "Gedetecteerd programma bevestigen",
|
||
"description": "Stel 'true' in als het gedetecteerde programma correct is."
|
||
},
|
||
"corrected_profile": {
|
||
"name": "Gecorrigeerd profiel",
|
||
"description": "Als u niet bevestigt, geef dan de juiste profiel-/programmanaam op."
|
||
},
|
||
"corrected_duration": {
|
||
"name": "Gecorrigeerde duur (seconden)",
|
||
"description": "Optioneel gecorrigeerde duur in seconden."
|
||
},
|
||
"notes": {
|
||
"name": "Notities",
|
||
"description": "Optionele notities over deze cyclus."
|
||
}
|
||
}
|
||
},
|
||
"record_start": {
|
||
"name": "Cyclusstart opnemen",
|
||
"description": "Begin handmatig een schone cyclus op te nemen (omzeilt alle matchinglogica).",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Apparaat",
|
||
"description": "Het WashData-apparaat om op te nemen."
|
||
}
|
||
}
|
||
},
|
||
"record_stop": {
|
||
"name": "Cyclusstop opnemen",
|
||
"description": "Handmatige opname stoppen.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Apparaat",
|
||
"description": "Het WashData-apparaat om de opname te stoppen."
|
||
}
|
||
}
|
||
},
|
||
"trim_cycle": {
|
||
"name": "Cyclus trimmen",
|
||
"description": "Trim de vermogensgegevens van een eerdere cyclus tot een specifiek tijdvenster.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Apparaat",
|
||
"description": "Het WashData-apparaat."
|
||
},
|
||
"cycle_id": {
|
||
"name": "Cyclus-ID",
|
||
"description": "De ID van de te trimmen cyclus."
|
||
},
|
||
"trim_start_s": {
|
||
"name": "Trim begin (seconden)",
|
||
"description": "Gegevens bewaren vanaf deze offset in seconden. Standaard 0."
|
||
},
|
||
"trim_end_s": {
|
||
"name": "Trim einde (seconden)",
|
||
"description": "Gegevens bewaren tot deze offset in seconden. Standaard = volledige duur."
|
||
}
|
||
}
|
||
},
|
||
"pause_cycle": {
|
||
"name": "Pauzeer cyclus",
|
||
"description": "Pauzeer de actieve cyclus voor een WashData-apparaat.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Apparaat",
|
||
"description": "Het WashData-apparaat om te pauzeren."
|
||
}
|
||
}
|
||
},
|
||
"resume_cycle": {
|
||
"name": "Hervat cyclus",
|
||
"description": "Hervat een gepauzeerde cyclus voor een WashData-apparaat.",
|
||
"fields": {
|
||
"device_id": {
|
||
"name": "Apparaat",
|
||
"description": "Het WashData-apparaat om te hervatten."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"entity": {
|
||
"binary_sensor": {
|
||
"running": {
|
||
"name": "Actief"
|
||
},
|
||
"match_ambiguity": {
|
||
"name": "Match-dubbelzinnigheid"
|
||
}
|
||
},
|
||
"sensor": {
|
||
"washer_state": {
|
||
"name": "Status",
|
||
"state": {
|
||
"off": "Uit",
|
||
"idle": "Inactief",
|
||
"starting": "Opstarten",
|
||
"running": "Actief",
|
||
"paused": "Gepauzeerd",
|
||
"user_paused": "Gepauzeerd door gebruiker",
|
||
"ending": "Eindigen",
|
||
"finished": "Voltooid",
|
||
"anti_wrinkle": "Anti-kreuk",
|
||
"delay_wait": "Wachten om te beginnen",
|
||
"interrupted": "Onderbroken",
|
||
"force_stopped": "Geforceerd gestopt",
|
||
"rinse": "Spoelen",
|
||
"unknown": "Onbekend",
|
||
"clean": "Schoon"
|
||
}
|
||
},
|
||
"washer_program": {
|
||
"name": "Programma"
|
||
},
|
||
"time_remaining": {
|
||
"name": "Resterende tijd"
|
||
},
|
||
"total_duration": {
|
||
"name": "Totale duur"
|
||
},
|
||
"cycle_progress": {
|
||
"name": "Voortgang"
|
||
},
|
||
"current_power": {
|
||
"name": "Huidig vermogen"
|
||
},
|
||
"elapsed_time": {
|
||
"name": "Verstreken tijd"
|
||
},
|
||
"debug_info": {
|
||
"name": "Debuginformatie"
|
||
},
|
||
"match_confidence": {
|
||
"name": "Matchbetrouwbaarheid"
|
||
},
|
||
"top_candidates": {
|
||
"name": "Topkandidaten",
|
||
"state": {
|
||
"none": "Geen"
|
||
}
|
||
},
|
||
"current_phase": {
|
||
"name": "Huidige fase"
|
||
},
|
||
"wash_phase": {
|
||
"name": "Fase"
|
||
},
|
||
"profile_cycle_count": {
|
||
"name": "Profiel {profile_name} aantal",
|
||
"unit_of_measurement": "cycli"
|
||
},
|
||
"suggestions": {
|
||
"name": "Beschikbare voorgestelde instellingen"
|
||
},
|
||
"pump_runs_today": {
|
||
"name": "Pomp draait (laatste 24 uur)"
|
||
},
|
||
"cycle_count": {
|
||
"name": "Cyclustelling"
|
||
}
|
||
},
|
||
"select": {
|
||
"program_select": {
|
||
"name": "Cyclusprogramma",
|
||
"state": {
|
||
"auto_detect": "Automatisch detecteren"
|
||
}
|
||
}
|
||
},
|
||
"button": {
|
||
"force_end_cycle": {
|
||
"name": "Cyclus geforceerd beëindigen"
|
||
},
|
||
"pause_cycle": {
|
||
"name": "Pauzeer cyclus"
|
||
},
|
||
"resume_cycle": {
|
||
"name": "Hervat cyclus"
|
||
}
|
||
}
|
||
},
|
||
"exceptions": {
|
||
"device_id_required": {
|
||
"message": "Een geldige device_id is vereist."
|
||
},
|
||
"cycle_id_required": {
|
||
"message": "Een geldige cyclus_id is vereist."
|
||
},
|
||
"profile_name_required": {
|
||
"message": "Een geldige profielnaam is vereist."
|
||
},
|
||
"device_not_found": {
|
||
"message": "Apparaat niet gevonden."
|
||
},
|
||
"no_config_entry": {
|
||
"message": "Geen configuratie-invoer gevonden voor apparaat."
|
||
},
|
||
"integration_not_loaded": {
|
||
"message": "Integratie niet geladen voor dit apparaat."
|
||
},
|
||
"cycle_not_found_or_no_power": {
|
||
"message": "Cyclus niet gevonden of heeft geen vermogensgegevens."
|
||
},
|
||
"trim_failed_empty_window": {
|
||
"message": "Trimmen mislukt - cyclus niet gevonden, geen vermogensgegevens of het resulterende venster is leeg."
|
||
},
|
||
"trim_invalid_range": {
|
||
"message": "trim_end_s moet groter zijn dan trim_start_s."
|
||
}
|
||
}
|
||
}
|