iobroker.laundrylens 0.4.20 → 0.4.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -132,6 +132,16 @@ This also works inside the conditional `[...]` blocks: `[🌡️ Outside: {state
132
132
 
133
133
  ### **WORK IN PROGRESS**
134
134
 
135
+ ### 0.4.22 (2026-09-16)
136
+ - Fix: the per-device "Off delay" setting (`offDelayMin`) was silently ignored - `CycleDetector`'s config merge never translated it into the field the detector actually uses (`offDelay`, in seconds), so every device always used a hardcoded 5-minute default regardless of what was configured. Found via a real trace where a cycle stayed stuck as "running" long after power had genuinely dropped to ~0W. Note: this alone doesn't fully explain very long stalls (well over an hour) - if a cycle still gets stuck after this fix, please share the adapter log from around that time
137
+
138
+ ### 0.4.21 (2026-09-08)
139
+ - Fix: translated all remaining German user-visible strings in the admin tab (toasts, table headers, confirm dialogs - about 35 instances, more than initially found by review) into the existing i18n system
140
+ - Fix: a cycle's `matchedProfile` could be stored server-side as literal German text ("Anti-Knitter") for anti-crease-tagged cycles, showing up untranslated in the `lastCycleProgram` data point and cycle history regardless of system language - now stored as a language-neutral marker and translated at display time
141
+ - Fix: two remaining hardcoded German date/time locales in the admin tab now use the configured language like everywhere else
142
+ - Fix: added the full MIT license text to README.md (previously only the header/copyright line)
143
+ - Extended the English-only regression test to also cover the admin tab, closing the gap that let these issues go unnoticed for several releases
144
+
135
145
  ### 0.4.20 (2026-09-08)
136
146
  - Fix: added Node.js 26 to the CI test matrix (`unit-tests` and `adapter-tests`)
137
147
  - Fix: updated the `@iobroker/testing` devDependency to 6.1.0 - checked both 6.0.0's and 6.1.0's breaking changes against this adapter (no `prepare` script, no `encryptedNative` properties, no `changeAdapterConfig()` usage in the integration test - none apply); full test suite, `test:package`, and `test:integration` all still pass
@@ -229,3 +239,21 @@ Issues and pull requests are welcome: [Issues](https://github.com/backfisch88/io
229
239
  MIT License
230
240
 
231
241
  Copyright (c) 2026 backfisch88
242
+
243
+ Permission is hereby granted, free of charge, to any person obtaining a copy
244
+ of this software and associated documentation files (the "Software"), to deal
245
+ in the Software without restriction, including without limitation the rights
246
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
247
+ copies of the Software, and to permit persons to whom the Software is
248
+ furnished to do so, subject to the following conditions:
249
+
250
+ The above copyright notice and this permission notice shall be included in all
251
+ copies or substantial portions of the Software.
252
+
253
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
254
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
255
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
256
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
257
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
258
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
259
+ SOFTWARE.
@@ -6,13 +6,16 @@
6
6
  "All cycles confirmed!": "Alle Zyklen bestätigt!",
7
7
  "All data deleted!": "Alle Daten gelöscht!",
8
8
  "All devices": "Alle Geräte",
9
+ "Anti-crease": "Anti-Knitter",
9
10
  "Anti-crease pattern deleted": "Anti-Knitter-Muster gelöscht",
10
11
  "Anti-crease pattern saved!": "Anti-Knitter gespeichert!",
11
12
  "Apply": "Anwenden",
12
13
  "Apply suggested value?": "Empfohlenen Wert übernehmen?",
13
14
  "Assign program": "Programm zuweisen",
15
+ "Assigned & learned!": "Zugewiesen & gelernt!",
14
16
  "Auto-confirm from confidence (%)": "Auto-Bestätigung ab Konfidenz (%)",
15
17
  "Automatic": "Automatik",
18
+ "Automatic active": "Automatik aktiv",
16
19
  "Back up configuration": "Konfiguration sichern",
17
20
  "Based on": "Basierend auf",
18
21
  "Cancel": "Abbrechen",
@@ -28,8 +31,10 @@
28
31
  "Correct – confirm": "Stimmt – bestätigen",
29
32
  "Corrected – adapter is learning!": "Korrigiert – Adapter lernt!",
30
33
  "Create new program": "Neues Programm anlegen",
34
+ "Created": "Angelegt",
31
35
  "Cycle deleted": "Zyklus gelöscht",
32
36
  "Cycle history": "Zyklushistorie",
37
+ "Cycles": "Zyklen",
33
38
  "Delete": "Löschen",
34
39
  "Delete all data for \"": "Alle Daten für \"",
35
40
  "Deleted": "Gelöscht",
@@ -43,15 +48,19 @@
43
48
  "Display name in the dashboard": "Anzeigename im Dashboard",
44
49
  "Dryer settings": "Trockner-Einstellungen",
45
50
  "Duration": "Dauer",
51
+ "Duration (avg)": "Dauer (Ø)",
46
52
  "Duration (min)": "Dauer (min)",
47
53
  "Duration tolerance": "Dauer-Toleranz",
48
54
  "Duration tolerance (0.05–0.5)": "Dauer-Toleranz (0.05–0.5)",
49
55
  "During a running cycle: if the live preview repeatedly (2x) shows at least this confidence, the program is adopted immediately instead of waiting for the normal, slower detection.": "Während des laufenden Zyklus: wenn die Live-Vorschau wiederholt (2x) mindestens diese Konfidenz zeigt, wird das Programm sofort übernommen, statt auf die normale, langsamere Erkennung zu warten.",
50
56
  "Elapsed time": "Verstrichene Zeit",
57
+ "Ending cycle…": "Zyklus wird beendet…",
51
58
  "Ending…": "Endet…",
52
59
  "Error": "Fehler",
60
+ "Error assigning": "Fehler beim Zuweisen",
53
61
  "Error loading": "Fehler beim Laden",
54
62
  "Error saving": "Fehler beim Speichern",
63
+ "Error splitting": "Fehler beim Teilen",
55
64
  "Export downloaded": "Export heruntergeladen",
56
65
  "Export failed": "Export fehlgeschlagen",
57
66
  "From this confidence a program counts as detected (and is shown). Below it, it stays 'detecting...'. 55 = recommended": "Ab dieser Konfidenz gilt ein Programm als erkannt (wird angezeigt). Darunter bleibt es 'detecting...'. 55 = empfohlen",
@@ -63,6 +72,7 @@
63
72
  "How often the program is matched. Recommended: 5 min for all device types": "Wie oft das Programm erkannt wird. Empfehlung: 5 min für alle Geräte",
64
73
  "Ignore": "Ignorieren",
65
74
  "Ignore saved anti-crease pattern": "Gespeichertes Anti-Knitter-Muster ignorieren",
75
+ "Imported": "Importiert",
66
76
  "Instant adoption from confidence (%)": "Sofortübernahme ab Konfidenz (%)",
67
77
  "Invalid JSON file": "Ungültige JSON-Datei",
68
78
  "JSON appears here after export…": "JSON erscheint hier nach Export…",
@@ -76,6 +86,7 @@
76
86
  "Matching interval (min)": "Matching-Intervall (min)",
77
87
  "Min. interval (min)": "Min. Abstand (min)",
78
88
  "Minimum energy after start before the cycle is counted (prevents false starts). Recommended: washing machine 2 Wh · dryer 5 Wh · washer-dryer 5 Wh": "Mindest-Energie nach Start bevor Zyklus gezählt wird (verhindert Fehlstarts). Empfehlung: Waschmaschine 2 Wh · Trockner 5 Wh · Waschtrockner 5 Wh",
89
+ "Name": "Name",
79
90
  "Near-done dev. %": "Fast-fertig Abw. %",
80
91
  "Near-done dev. min": "Fast-fertig Abw. min",
81
92
  "Near-done from (%)": "Fast-fertig ab (%)",
@@ -86,10 +97,12 @@
86
97
  "No cycles with curve data available": "Keine Zyklen mit Kurvendaten verfügbar",
87
98
  "No device selected": "Kein Gerät ausgewählt",
88
99
  "No devices configured.": "Keine Geräte konfiguriert.",
100
+ "No programs available": "Keine Programme vorhanden",
89
101
  "No programs created yet.": "Noch keine Programme angelegt.",
90
102
  "No suggestions available": "Keine Empfehlungen verfügbar",
91
103
  "No trace available": "Keine Trace verfügbar",
92
104
  "No trace data": "Keine Trace-Daten",
105
+ "Notification saved!": "Benachrichtigung gespeichert!",
93
106
  "Notify also for probable program": "Benachrichtigung auch bei wahrscheinlichem Programm",
94
107
  "ON (default): the cycle ends immediately at the beep, and a saved anti-crease reference pattern (if any) is not used - simplest option, and required until a pattern has been recorded. OFF: once a reference pattern exists (see 'Programs' tab), the adapter uses it to avoid mistaking anti-crease power spikes for a new cycle after the beep. Turn this off once you have saved a pattern.": "AN (Standard): Der Zyklus endet sofort beim Piepton, ein evtl. gespeichertes Anti-Knitter-Referenzmuster wird dabei nicht verwendet – einfachste Option, und nötig, solange noch kein Muster aufgezeichnet wurde. AUS: Sobald ein Referenzmuster existiert (siehe Tab 'Programme'), nutzt der Adapter es, um Anti-Knitter-Leistungsspitzen nach dem Piepton nicht fälschlich als neuen Zyklus zu werten. Schalte dies aus, sobald du ein Muster gespeichert hast.",
95
108
  "Off": "Aus",
@@ -99,6 +112,7 @@
99
112
  "Paused": "Pausiert",
100
113
  "Placeholders:": "Platzhalter:",
101
114
  "Please choose an adapter": "Bitte Adapter wählen",
115
+ "Please enter a name": "Bitte einen Namen eingeben",
102
116
  "Please select a cycle": "Bitte einen Zyklus auswählen",
103
117
  "Power curve": "Leistungskurve",
104
118
  "Power level from which the device is considered running. Recommended: 10W for all device types": "Ab wann gilt das Gerät als eingeschaltet. Empfehlung: 10W für alle Geräte",
@@ -107,20 +121,26 @@
107
121
  "Power-on threshold (W)": "Einschalt-Schwelle (W)",
108
122
  "Profiles, cycles, and traces will be permanently deleted!": "Profile, Zyklen und Traces werden unwiderruflich gelöscht!",
109
123
  "Program": "Programm",
124
+ "Program \"{0}\" created": "Programm \"{0}\" angelegt",
110
125
  "Program detection": "Programm-Erkennung",
111
126
  "Program detection threshold (%)": "Programm-Erkennungs-Schwelle (%)",
112
127
  "Program name": "Programmname",
113
128
  "Program override": "Programm-Override",
129
+ "Program saved & assigned!": "Programm gespeichert & zugewiesen!",
130
+ "Program saved!": "Programm gespeichert!",
131
+ "Program set to \"{0}\"": "Programm \"{0}\" gesetzt",
114
132
  "Progress": "Fortschritt",
115
133
  "Really delete program \"": "Programm „",
116
134
  "Really delete the saved anti-crease pattern?": "Gespeichertes Anti-Knitter-Muster wirklich löschen?",
117
135
  "Really delete this cycle?": "Zyklus wirklich löschen?",
136
+ "Really end cycle?": "Zyklus wirklich beenden?",
118
137
  "Recipient": "Empfänger",
119
138
  "Reference cycle": "Referenz-Zyklus",
120
139
  "Renamed": "Umbenannt",
121
140
  "Running ⚙️": "Läuft ⚙️",
122
141
  "Save": "Speichern",
123
142
  "Save as program": "Als Programm speichern",
143
+ "Save this cycle as the anti-crease pattern?\nIt will be used to detect anti-crease after drying.": "Diesen Zyklus als Anti-Knitter-Muster speichern?\nEr wird verwendet, um Anti-Knitter nach dem Trocknen zu erkennen.",
124
144
  "Saved programs": "Gespeicherte Programme",
125
145
  "Send a Telegram update as soon as a program is detected - even if confidence is below the auto-confirm threshold": "Telegram-Update senden sobald ein Programm erkannt wird – auch wenn die Konfidenz unter der Auto-Bestätigungs-Schwelle liegt",
126
146
  "Setting saved! Restarting adapter…": "Einstellung gespeichert! Adapter wird neu gestartet…",
@@ -147,8 +167,12 @@
147
167
  "e.g. Washing machine": "z.B. Waschmaschine",
148
168
  "e.g. name@example.com (blank = adapter default)": "z.B. name@example.com (leer = Adapter-Standard)",
149
169
  "fields with >10% deviation only:": "nur Felder mit >10% Abweichung:",
170
+ "graphs": "Graphen",
150
171
  "ioBroker data point providing the current power draw in watts": "ioBroker-Datenpunkt der aktuellen Leistungsaufnahme in Watt",
172
+ "learned": "gelernt",
173
+ "manual": "manuell",
151
174
  "min lock period": "min Sperrzeit",
175
+ "programs": "Programme",
152
176
  "– Choose adapter –": "– Adapter wählen –",
153
177
  "– Choose cycle –": "– Zyklus wählen –",
154
178
  "– No adapter found –": "– Kein Adapter gefunden –",
@@ -6,13 +6,16 @@
6
6
  "All cycles confirmed!": "All cycles confirmed!",
7
7
  "All data deleted!": "All data deleted!",
8
8
  "All devices": "All devices",
9
+ "Anti-crease": "Anti-crease",
9
10
  "Anti-crease pattern deleted": "Anti-crease pattern deleted",
10
11
  "Anti-crease pattern saved!": "Anti-crease pattern saved!",
11
12
  "Apply": "Apply",
12
13
  "Apply suggested value?": "Apply suggested value?",
13
14
  "Assign program": "Assign program",
15
+ "Assigned & learned!": "Assigned & learned!",
14
16
  "Auto-confirm from confidence (%)": "Auto-confirm from confidence (%)",
15
17
  "Automatic": "Automatic",
18
+ "Automatic active": "Automatic active",
16
19
  "Back up configuration": "Back up configuration",
17
20
  "Based on": "Based on",
18
21
  "Cancel": "Cancel",
@@ -28,8 +31,10 @@
28
31
  "Correct – confirm": "Correct – confirm",
29
32
  "Corrected – adapter is learning!": "Corrected – adapter is learning!",
30
33
  "Create new program": "Create new program",
34
+ "Created": "Created",
31
35
  "Cycle deleted": "Cycle deleted",
32
36
  "Cycle history": "Cycle history",
37
+ "Cycles": "Cycles",
33
38
  "Delete": "Delete",
34
39
  "Delete all data for \"": "Delete all data for \"",
35
40
  "Deleted": "Deleted",
@@ -43,15 +48,19 @@
43
48
  "Display name in the dashboard": "Display name in the dashboard",
44
49
  "Dryer settings": "Dryer settings",
45
50
  "Duration": "Duration",
51
+ "Duration (avg)": "Duration (avg)",
46
52
  "Duration (min)": "Duration (min)",
47
53
  "Duration tolerance": "Duration tolerance",
48
54
  "Duration tolerance (0.05–0.5)": "Duration tolerance (0.05–0.5)",
49
55
  "During a running cycle: if the live preview repeatedly (2x) shows at least this confidence, the program is adopted immediately instead of waiting for the normal, slower detection.": "During a running cycle: if the live preview repeatedly (2x) shows at least this confidence, the program is adopted immediately instead of waiting for the normal, slower detection.",
50
56
  "Elapsed time": "Elapsed time",
57
+ "Ending cycle…": "Ending cycle…",
51
58
  "Ending…": "Ending…",
52
59
  "Error": "Error",
60
+ "Error assigning": "Error assigning",
53
61
  "Error loading": "Error loading",
54
62
  "Error saving": "Error saving",
63
+ "Error splitting": "Error splitting",
55
64
  "Export downloaded": "Export downloaded",
56
65
  "Export failed": "Export failed",
57
66
  "From this confidence a program counts as detected (and is shown). Below it, it stays 'detecting...'. 55 = recommended": "From this confidence a program counts as detected (and is shown). Below it, it stays 'detecting...'. 55 = recommended",
@@ -63,6 +72,7 @@
63
72
  "How often the program is matched. Recommended: 5 min for all device types": "How often the program is matched. Recommended: 5 min for all device types",
64
73
  "Ignore": "Ignore",
65
74
  "Ignore saved anti-crease pattern": "Ignore saved anti-crease pattern",
75
+ "Imported": "Imported",
66
76
  "Instant adoption from confidence (%)": "Instant adoption from confidence (%)",
67
77
  "Invalid JSON file": "Invalid JSON file",
68
78
  "JSON appears here after export…": "JSON appears here after export…",
@@ -76,6 +86,7 @@
76
86
  "Matching interval (min)": "Matching interval (min)",
77
87
  "Min. interval (min)": "Min. interval (min)",
78
88
  "Minimum energy after start before the cycle is counted (prevents false starts). Recommended: washing machine 2 Wh · dryer 5 Wh · washer-dryer 5 Wh": "Minimum energy after start before the cycle is counted (prevents false starts). Recommended: washing machine 2 Wh · dryer 5 Wh · washer-dryer 5 Wh",
89
+ "Name": "Name",
79
90
  "Near-done dev. %": "Near-done dev. %",
80
91
  "Near-done dev. min": "Near-done dev. min",
81
92
  "Near-done from (%)": "Near-done from (%)",
@@ -86,10 +97,12 @@
86
97
  "No cycles with curve data available": "No cycles with curve data available",
87
98
  "No device selected": "No device selected",
88
99
  "No devices configured.": "No devices configured.",
100
+ "No programs available": "No programs available",
89
101
  "No programs created yet.": "No programs created yet.",
90
102
  "No suggestions available": "No suggestions available",
91
103
  "No trace available": "No trace available",
92
104
  "No trace data": "No trace data",
105
+ "Notification saved!": "Notification saved!",
93
106
  "Notify also for probable program": "Notify also for probable program",
94
107
  "ON (default): the cycle ends immediately at the beep, and a saved anti-crease reference pattern (if any) is not used - simplest option, and required until a pattern has been recorded. OFF: once a reference pattern exists (see 'Programs' tab), the adapter uses it to avoid mistaking anti-crease power spikes for a new cycle after the beep. Turn this off once you have saved a pattern.": "ON (default): the cycle ends immediately at the beep, and a saved anti-crease reference pattern (if any) is not used - simplest option, and required until a pattern has been recorded. OFF: once a reference pattern exists (see 'Programs' tab), the adapter uses it to avoid mistaking anti-crease power spikes for a new cycle after the beep. Turn this off once you have saved a pattern.",
95
108
  "Off": "Off",
@@ -99,6 +112,7 @@
99
112
  "Paused": "Paused",
100
113
  "Placeholders:": "Placeholders:",
101
114
  "Please choose an adapter": "Please choose an adapter",
115
+ "Please enter a name": "Please enter a name",
102
116
  "Please select a cycle": "Please select a cycle",
103
117
  "Power curve": "Power curve",
104
118
  "Power level from which the device is considered running. Recommended: 10W for all device types": "Power level from which the device is considered running. Recommended: 10W for all device types",
@@ -107,20 +121,26 @@
107
121
  "Power-on threshold (W)": "Power-on threshold (W)",
108
122
  "Profiles, cycles, and traces will be permanently deleted!": "Profiles, cycles, and traces will be permanently deleted!",
109
123
  "Program": "Program",
124
+ "Program \"{0}\" created": "Program \"{0}\" created",
110
125
  "Program detection": "Program detection",
111
126
  "Program detection threshold (%)": "Program detection threshold (%)",
112
127
  "Program name": "Program name",
113
128
  "Program override": "Program override",
129
+ "Program saved & assigned!": "Program saved & assigned!",
130
+ "Program saved!": "Program saved!",
131
+ "Program set to \"{0}\"": "Program set to \"{0}\"",
114
132
  "Progress": "Progress",
115
133
  "Really delete program \"": "Really delete program \"",
116
134
  "Really delete the saved anti-crease pattern?": "Really delete the saved anti-crease pattern?",
117
135
  "Really delete this cycle?": "Really delete this cycle?",
136
+ "Really end cycle?": "Really end cycle?",
118
137
  "Recipient": "Recipient",
119
138
  "Reference cycle": "Reference cycle",
120
139
  "Renamed": "Renamed",
121
140
  "Running ⚙️": "Running ⚙️",
122
141
  "Save": "Save",
123
142
  "Save as program": "Save as program",
143
+ "Save this cycle as the anti-crease pattern?\nIt will be used to detect anti-crease after drying.": "Save this cycle as the anti-crease pattern?\nIt will be used to detect anti-crease after drying.",
124
144
  "Saved programs": "Saved programs",
125
145
  "Send a Telegram update as soon as a program is detected - even if confidence is below the auto-confirm threshold": "Send a Telegram update as soon as a program is detected - even if confidence is below the auto-confirm threshold",
126
146
  "Setting saved! Restarting adapter…": "Setting saved! Restarting adapter…",
@@ -147,8 +167,12 @@
147
167
  "e.g. Washing machine": "e.g. Washing machine",
148
168
  "e.g. name@example.com (blank = adapter default)": "e.g. name@example.com (blank = adapter default)",
149
169
  "fields with >10% deviation only:": "fields with >10% deviation only:",
170
+ "graphs": "graphs",
150
171
  "ioBroker data point providing the current power draw in watts": "ioBroker data point providing the current power draw in watts",
172
+ "learned": "learned",
173
+ "manual": "manual",
151
174
  "min lock period": "min lock period",
175
+ "programs": "programs",
152
176
  "– Choose adapter –": "– Choose adapter –",
153
177
  "– Choose cycle –": "– Choose cycle –",
154
178
  "– No adapter found –": "– No adapter found –",
@@ -6,13 +6,16 @@
6
6
  "All cycles confirmed!": "¡Todos los ciclos confirmados!",
7
7
  "All data deleted!": "¡Todos los datos eliminados!",
8
8
  "All devices": "Todos los dispositivos",
9
+ "Anti-crease": "Antiarrugas",
9
10
  "Anti-crease pattern deleted": "Patrón antiarrugas eliminado",
10
11
  "Anti-crease pattern saved!": "¡Patrón antiarrugas guardado!",
11
12
  "Apply": "Aplicar",
12
13
  "Apply suggested value?": "¿Aplicar el valor sugerido?",
13
14
  "Assign program": "Asignar programa",
15
+ "Assigned & learned!": "Asignado y aprendido!",
14
16
  "Auto-confirm from confidence (%)": "Confirmación automática a partir de la confianza (%)",
15
17
  "Automatic": "Automático",
18
+ "Automatic active": "Automático activo",
16
19
  "Back up configuration": "Respaldar configuración",
17
20
  "Based on": "Basado en",
18
21
  "Cancel": "Cancelar",
@@ -28,8 +31,10 @@
28
31
  "Correct – confirm": "Correcto – confirmar",
29
32
  "Corrected – adapter is learning!": "¡Corregido – el adaptador está aprendiendo!",
30
33
  "Create new program": "Crear nuevo programa",
34
+ "Created": "Creado",
31
35
  "Cycle deleted": "Ciclo eliminado",
32
36
  "Cycle history": "Historial de ciclos",
37
+ "Cycles": "Ciclos",
33
38
  "Delete": "Eliminar",
34
39
  "Delete all data for \"": "Eliminar todos los datos de \"",
35
40
  "Deleted": "Eliminado",
@@ -43,15 +48,19 @@
43
48
  "Display name in the dashboard": "Nombre mostrado en el panel",
44
49
  "Dryer settings": "Configuración de la secadora",
45
50
  "Duration": "Duración",
51
+ "Duration (avg)": "Duración (prom.)",
46
52
  "Duration (min)": "Duración (min)",
47
53
  "Duration tolerance": "Tolerancia de duración",
48
54
  "Duration tolerance (0.05–0.5)": "Tolerancia de duración (0,05–0,5)",
49
55
  "During a running cycle: if the live preview repeatedly (2x) shows at least this confidence, the program is adopted immediately instead of waiting for the normal, slower detection.": "Durante un ciclo en curso: si la vista previa en vivo muestra repetidamente (2x) al menos esta confianza, el programa se adopta inmediatamente en lugar de esperar la detección normal, más lenta.",
50
56
  "Elapsed time": "Tiempo transcurrido",
57
+ "Ending cycle…": "Finalizando ciclo…",
51
58
  "Ending…": "Terminando…",
52
59
  "Error": "Error",
60
+ "Error assigning": "Error al asignar",
53
61
  "Error loading": "Error al cargar",
54
62
  "Error saving": "Error al guardar",
63
+ "Error splitting": "Error al dividir",
55
64
  "Export downloaded": "Exportación descargada",
56
65
  "Export failed": "Error en la exportación",
57
66
  "From this confidence a program counts as detected (and is shown). Below it, it stays 'detecting...'. 55 = recommended": "A partir de esta confianza, un programa se considera detectado (y se muestra). Por debajo, permanece en 'detecting...'. 55 = recomendado",
@@ -63,6 +72,7 @@
63
72
  "How often the program is matched. Recommended: 5 min for all device types": "Con qué frecuencia se compara el programa. Recomendado: 5 min para todos los tipos de dispositivo",
64
73
  "Ignore": "Ignorar",
65
74
  "Ignore saved anti-crease pattern": "Ignorar el patrón antiarrugas guardado",
75
+ "Imported": "Importado",
66
76
  "Instant adoption from confidence (%)": "Adopción instantánea a partir de la confianza (%)",
67
77
  "Invalid JSON file": "Archivo JSON no válido",
68
78
  "JSON appears here after export…": "El JSON aparece aquí después de la exportación…",
@@ -76,6 +86,7 @@
76
86
  "Matching interval (min)": "Intervalo de coincidencia (min)",
77
87
  "Min. interval (min)": "Intervalo mín. (min)",
78
88
  "Minimum energy after start before the cycle is counted (prevents false starts). Recommended: washing machine 2 Wh · dryer 5 Wh · washer-dryer 5 Wh": "Energía mínima después del inicio antes de contar el ciclo (evita arranques falsos). Recomendado: lavadora 2 Wh · secadora 5 Wh · lavadora-secadora 5 Wh",
89
+ "Name": "Nombre",
79
90
  "Near-done dev. %": "Desv. casi listo %",
80
91
  "Near-done dev. min": "Desv. casi listo min",
81
92
  "Near-done from (%)": "Casi listo desde (%)",
@@ -86,10 +97,12 @@
86
97
  "No cycles with curve data available": "No hay ciclos con datos de curva disponibles",
87
98
  "No device selected": "Ningún dispositivo seleccionado",
88
99
  "No devices configured.": "No hay dispositivos configurados.",
100
+ "No programs available": "No hay programas disponibles",
89
101
  "No programs created yet.": "Aún no se han creado programas.",
90
102
  "No suggestions available": "No hay sugerencias disponibles",
91
103
  "No trace available": "No hay traza disponible",
92
104
  "No trace data": "Sin datos de traza",
105
+ "Notification saved!": "¡Notificación guardada!",
93
106
  "Notify also for probable program": "Notificar también para programa probable",
94
107
  "ON (default): the cycle ends immediately at the beep, and a saved anti-crease reference pattern (if any) is not used - simplest option, and required until a pattern has been recorded. OFF: once a reference pattern exists (see 'Programs' tab), the adapter uses it to avoid mistaking anti-crease power spikes for a new cycle after the beep. Turn this off once you have saved a pattern.": "ACTIVADO (predeterminado): el ciclo termina inmediatamente al pitido, y un patrón antiarrugas guardado (si existe) no se utiliza - opción más simple, necesaria mientras no se haya grabado ningún patrón. DESACTIVADO: en cuanto exista un patrón de referencia (pestaña 'Programas'), el adaptador lo usa para evitar confundir los picos de potencia antiarrugas con un nuevo ciclo después del pitido. Desactívalo en cuanto hayas guardado un patrón.",
95
108
  "Off": "Apagado",
@@ -99,6 +112,7 @@
99
112
  "Paused": "En pausa",
100
113
  "Placeholders:": "Marcadores de posición:",
101
114
  "Please choose an adapter": "Elige un adaptador",
115
+ "Please enter a name": "Por favor, introduce un nombre",
102
116
  "Please select a cycle": "Selecciona un ciclo",
103
117
  "Power curve": "Curva de potencia",
104
118
  "Power level from which the device is considered running. Recommended: 10W for all device types": "Nivel de potencia a partir del cual el dispositivo se considera en funcionamiento. Recomendado: 10W para todos los tipos de dispositivo",
@@ -107,20 +121,26 @@
107
121
  "Power-on threshold (W)": "Umbral de encendido (W)",
108
122
  "Profiles, cycles, and traces will be permanently deleted!": "¡Los perfiles, ciclos y trazas se eliminarán permanentemente!",
109
123
  "Program": "Programa",
124
+ "Program \"{0}\" created": "Programa \"{0}\" creado",
110
125
  "Program detection": "Detección de programa",
111
126
  "Program detection threshold (%)": "Umbral de detección de programa (%)",
112
127
  "Program name": "Nombre del programa",
113
128
  "Program override": "Anulación de programa",
129
+ "Program saved & assigned!": "¡Programa guardado y asignado!",
130
+ "Program saved!": "¡Programa guardado!",
131
+ "Program set to \"{0}\"": "Programa establecido en \"{0}\"",
114
132
  "Progress": "Progreso",
115
133
  "Really delete program \"": "¿Eliminar realmente el programa \"",
116
134
  "Really delete the saved anti-crease pattern?": "¿Eliminar realmente el patrón antiarrugas guardado?",
117
135
  "Really delete this cycle?": "¿Eliminar realmente este ciclo?",
136
+ "Really end cycle?": "¿Realmente finalizar el ciclo?",
118
137
  "Recipient": "Destinatario",
119
138
  "Reference cycle": "Ciclo de referencia",
120
139
  "Renamed": "Renombrado",
121
140
  "Running ⚙️": "En marcha ⚙️",
122
141
  "Save": "Guardar",
123
142
  "Save as program": "Guardar como programa",
143
+ "Save this cycle as the anti-crease pattern?\nIt will be used to detect anti-crease after drying.": "¿Guardar este ciclo como patrón antiarrugas?\nSe usará para detectar el antiarrugas después del secado.",
124
144
  "Saved programs": "Programas guardados",
125
145
  "Send a Telegram update as soon as a program is detected - even if confidence is below the auto-confirm threshold": "Enviar una actualización de Telegram en cuanto se detecte un programa, incluso si la confianza está por debajo del umbral de confirmación automática",
126
146
  "Setting saved! Restarting adapter…": "¡Configuración guardada! Reiniciando el adaptador…",
@@ -147,8 +167,12 @@
147
167
  "e.g. Washing machine": "p. ej. Lavadora",
148
168
  "e.g. name@example.com (blank = adapter default)": "p. ej. nombre@ejemplo.com (vacío = valor predeterminado del adaptador)",
149
169
  "fields with >10% deviation only:": "solo campos con desviación >10%:",
170
+ "graphs": "gráficos",
150
171
  "ioBroker data point providing the current power draw in watts": "Punto de datos de ioBroker con el consumo de potencia actual en vatios",
172
+ "learned": "aprendido",
173
+ "manual": "manual",
151
174
  "min lock period": "min de bloqueo",
175
+ "programs": "programas",
152
176
  "– Choose adapter –": "– Elegir adaptador –",
153
177
  "– Choose cycle –": "– Elegir ciclo –",
154
178
  "– No adapter found –": "– No se encontró adaptador –",
@@ -6,13 +6,16 @@
6
6
  "All cycles confirmed!": "Tous les cycles confirmés !",
7
7
  "All data deleted!": "Toutes les données supprimées !",
8
8
  "All devices": "Tous les appareils",
9
+ "Anti-crease": "Anti-froissage",
9
10
  "Anti-crease pattern deleted": "Motif anti-froissage supprimé",
10
11
  "Anti-crease pattern saved!": "Motif anti-froissage enregistré !",
11
12
  "Apply": "Appliquer",
12
13
  "Apply suggested value?": "Appliquer la valeur suggérée ?",
13
14
  "Assign program": "Attribuer le programme",
15
+ "Assigned & learned!": "Assigné et appris !",
14
16
  "Auto-confirm from confidence (%)": "Confirmation automatique à partir de la confiance (%)",
15
17
  "Automatic": "Automatique",
18
+ "Automatic active": "Automatique actif",
16
19
  "Back up configuration": "Sauvegarder la configuration",
17
20
  "Based on": "Basé sur",
18
21
  "Cancel": "Annuler",
@@ -28,8 +31,10 @@
28
31
  "Correct – confirm": "Correct – confirmer",
29
32
  "Corrected – adapter is learning!": "Corrigé – l'adaptateur apprend !",
30
33
  "Create new program": "Créer un nouveau programme",
34
+ "Created": "Créé",
31
35
  "Cycle deleted": "Cycle supprimé",
32
36
  "Cycle history": "Historique des cycles",
37
+ "Cycles": "Cycles",
33
38
  "Delete": "Supprimer",
34
39
  "Delete all data for \"": "Supprimer toutes les données de \"",
35
40
  "Deleted": "Supprimé",
@@ -43,15 +48,19 @@
43
48
  "Display name in the dashboard": "Nom affiché dans le tableau de bord",
44
49
  "Dryer settings": "Paramètres du sèche-linge",
45
50
  "Duration": "Durée",
51
+ "Duration (avg)": "Durée (moy.)",
46
52
  "Duration (min)": "Durée (min)",
47
53
  "Duration tolerance": "Tolérance de durée",
48
54
  "Duration tolerance (0.05–0.5)": "Tolérance de durée (0,05–0,5)",
49
55
  "During a running cycle: if the live preview repeatedly (2x) shows at least this confidence, the program is adopted immediately instead of waiting for the normal, slower detection.": "Pendant un cycle en cours : si l'aperçu en direct affiche à plusieurs reprises (2x) au moins ce niveau de confiance, le programme est adopté immédiatement au lieu d'attendre la détection normale, plus lente.",
50
56
  "Elapsed time": "Temps écoulé",
57
+ "Ending cycle…": "Fin du cycle…",
51
58
  "Ending…": "Se termine…",
52
59
  "Error": "Erreur",
60
+ "Error assigning": "Erreur d'assignation",
53
61
  "Error loading": "Erreur de chargement",
54
62
  "Error saving": "Erreur d'enregistrement",
63
+ "Error splitting": "Erreur de division",
55
64
  "Export downloaded": "Export téléchargé",
56
65
  "Export failed": "Échec de l'export",
57
66
  "From this confidence a program counts as detected (and is shown). Below it, it stays 'detecting...'. 55 = recommended": "À partir de cette confiance, un programme est considéré comme détecté (et affiché). En dessous, il reste à 'detecting...'. 55 = recommandé",
@@ -63,6 +72,7 @@
63
72
  "How often the program is matched. Recommended: 5 min for all device types": "Fréquence de correspondance du programme. Recommandé : 5 min pour tous les types d'appareils",
64
73
  "Ignore": "Ignorer",
65
74
  "Ignore saved anti-crease pattern": "Ignorer le motif anti-froissage enregistré",
75
+ "Imported": "Importé",
66
76
  "Instant adoption from confidence (%)": "Adoption instantanée à partir de la confiance (%)",
67
77
  "Invalid JSON file": "Fichier JSON invalide",
68
78
  "JSON appears here after export…": "Le JSON apparaît ici après l'export…",
@@ -76,6 +86,7 @@
76
86
  "Matching interval (min)": "Intervalle de correspondance (min)",
77
87
  "Min. interval (min)": "Intervalle min. (min)",
78
88
  "Minimum energy after start before the cycle is counted (prevents false starts). Recommended: washing machine 2 Wh · dryer 5 Wh · washer-dryer 5 Wh": "Énergie minimale après le démarrage avant que le cycle ne soit compté (évite les faux départs). Recommandé : lave-linge 2 Wh · sèche-linge 5 Wh · lave-linge séchant 5 Wh",
89
+ "Name": "Nom",
79
90
  "Near-done dev. %": "Écart presque fini %",
80
91
  "Near-done dev. min": "Écart presque fini min",
81
92
  "Near-done from (%)": "Presque fini à partir de (%)",
@@ -86,10 +97,12 @@
86
97
  "No cycles with curve data available": "Aucun cycle avec données de courbe disponible",
87
98
  "No device selected": "Aucun appareil sélectionné",
88
99
  "No devices configured.": "Aucun appareil configuré.",
100
+ "No programs available": "Aucun programme disponible",
89
101
  "No programs created yet.": "Aucun programme encore créé.",
90
102
  "No suggestions available": "Aucune suggestion disponible",
91
103
  "No trace available": "Aucune trace disponible",
92
104
  "No trace data": "Aucune donnée de trace",
105
+ "Notification saved!": "Notification enregistrée !",
93
106
  "Notify also for probable program": "Notifier également pour un programme probable",
94
107
  "ON (default): the cycle ends immediately at the beep, and a saved anti-crease reference pattern (if any) is not used - simplest option, and required until a pattern has been recorded. OFF: once a reference pattern exists (see 'Programs' tab), the adapter uses it to avoid mistaking anti-crease power spikes for a new cycle after the beep. Turn this off once you have saved a pattern.": "ON (par défaut) : le cycle se termine immédiatement au bip, et un motif anti-froissage enregistré (le cas échéant) n'est pas utilisé - option la plus simple, nécessaire tant qu'aucun motif n'a été enregistré. OFF : dès qu'un motif de référence existe (onglet « Programmes »), l'adaptateur l'utilise pour éviter de confondre les pics de puissance anti-froissage avec un nouveau cycle après le bip. Désactivez ceci une fois un motif enregistré.",
95
108
  "Off": "Éteint",
@@ -99,6 +112,7 @@
99
112
  "Paused": "En pause",
100
113
  "Placeholders:": "Espaces réservés :",
101
114
  "Please choose an adapter": "Veuillez choisir un adaptateur",
115
+ "Please enter a name": "Veuillez saisir un nom",
102
116
  "Please select a cycle": "Veuillez sélectionner un cycle",
103
117
  "Power curve": "Courbe de puissance",
104
118
  "Power level from which the device is considered running. Recommended: 10W for all device types": "Niveau de puissance à partir duquel l'appareil est considéré comme en marche. Recommandé : 10 W pour tous les types d'appareils",
@@ -107,20 +121,26 @@
107
121
  "Power-on threshold (W)": "Seuil de mise en marche (W)",
108
122
  "Profiles, cycles, and traces will be permanently deleted!": "Les profils, cycles et traces seront définitivement supprimés !",
109
123
  "Program": "Programme",
124
+ "Program \"{0}\" created": "Programme « {0} » créé",
110
125
  "Program detection": "Détection du programme",
111
126
  "Program detection threshold (%)": "Seuil de détection du programme (%)",
112
127
  "Program name": "Nom du programme",
113
128
  "Program override": "Forçage du programme",
129
+ "Program saved & assigned!": "Programme enregistré et assigné !",
130
+ "Program saved!": "Programme enregistré !",
131
+ "Program set to \"{0}\"": "Programme réglé sur « {0} »",
114
132
  "Progress": "Progression",
115
133
  "Really delete program \"": "Voulez-vous vraiment supprimer le programme \"",
116
134
  "Really delete the saved anti-crease pattern?": "Voulez-vous vraiment supprimer le motif anti-froissage enregistré ?",
117
135
  "Really delete this cycle?": "Voulez-vous vraiment supprimer ce cycle ?",
136
+ "Really end cycle?": "Vraiment terminer le cycle ?",
118
137
  "Recipient": "Destinataire",
119
138
  "Reference cycle": "Cycle de référence",
120
139
  "Renamed": "Renommé",
121
140
  "Running ⚙️": "En cours ⚙️",
122
141
  "Save": "Enregistrer",
123
142
  "Save as program": "Enregistrer comme programme",
143
+ "Save this cycle as the anti-crease pattern?\nIt will be used to detect anti-crease after drying.": "Enregistrer ce cycle comme motif anti-froissage ?\nIl sera utilisé pour détecter l'anti-froissage après le séchage.",
124
144
  "Saved programs": "Programmes enregistrés",
125
145
  "Send a Telegram update as soon as a program is detected - even if confidence is below the auto-confirm threshold": "Envoyer une mise à jour Telegram dès qu'un programme est détecté - même si la confiance est inférieure au seuil de confirmation automatique",
126
146
  "Setting saved! Restarting adapter…": "Paramètre enregistré ! Redémarrage de l'adaptateur…",
@@ -147,8 +167,12 @@
147
167
  "e.g. Washing machine": "p. ex. Lave-linge",
148
168
  "e.g. name@example.com (blank = adapter default)": "p. ex. nom@exemple.com (vide = valeur par défaut de l'adaptateur)",
149
169
  "fields with >10% deviation only:": "champs avec écart >10% seulement :",
170
+ "graphs": "graphiques",
150
171
  "ioBroker data point providing the current power draw in watts": "Point de données ioBroker fournissant la puissance actuelle en watts",
172
+ "learned": "appris",
173
+ "manual": "manuel",
151
174
  "min lock period": "min de verrouillage",
175
+ "programs": "programmes",
152
176
  "– Choose adapter –": "– Choisir l'adaptateur –",
153
177
  "– Choose cycle –": "– Choisir le cycle –",
154
178
  "– No adapter found –": "– Aucun adaptateur trouvé –",