iobroker.tidy 0.1.7 → 0.2.0

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
@@ -21,7 +21,8 @@ The **Tidy** adapter helps to find unused objects and states to clean up your sy
21
21
 
22
22
  ## Features
23
23
 
24
- - **📊 Path-based scanning**: Configure multiple paths to scan (e.g., `0_userdata.0`, `alias.0`)
24
+ - **📊 Path-based scanning**: Configure multiple paths to scan via object picker (e.g., `0_userdata.0`, `alias.0`)
25
+ - **🚫 Exceptions**: Exclude intentionally static datapoints or entire folders from scan results
25
26
  - **🔍 Smart detection**: Identifies different types of problematic datapoints:
26
27
  - **Dead**: Never updated or extremely old (configurable threshold, default: 365 days)
27
28
  - **Stale**: Not updated recently (configurable threshold, default: 90 days)
@@ -52,10 +53,22 @@ The **Tidy** adapter helps to find unused objects and states to clean up your sy
52
53
  Configure one or more paths to monitor:
53
54
 
54
55
  - **Enabled**: Enable/disable this scan path
55
- - **Path**: The root path to scan (e.g., `0_userdata.0`, `alias.0`, `javascript.0`)
56
+ - **Scan path**: Pick a folder from the object tree or type a path manually (e.g., `0_userdata.0`, `alias.0`, `javascript.0`). The field stays editable after picking.
57
+ - **All adapter instances**: Remove the instance number to scan every instance — e.g. `alias` instead of `alias.0` matches `alias.0`, `alias.1`, and so on
56
58
  - **Name**: A friendly name for this path (used for result state naming)
57
59
  - **Check alias targets**: For `alias.*` paths, check if target datapoints still exist (ghost detection)
58
60
 
61
+ ### Exceptions
62
+
63
+ Exclude datapoints that should not appear in scan results or statistics:
64
+
65
+ - **Object**: Pick a single state or a folder/channel to exclude an entire subtree
66
+ - **Comment**: Optional note (e.g. why this datapoint is excluded)
67
+
68
+ Use this for configuration values that rarely change (e.g. a stored radio station for an alarm script) so they are not flagged as dead or stale.
69
+
70
+ Exceptions apply to path-based scans and the complete scan. Each scan channel provides **`exceptionCount`** — the number of datapoints excluded during the last scan (0 if none).
71
+
59
72
  ## Data Points
60
73
 
61
74
  For each configured path (e.g., "userdata"), the adapter creates:
@@ -67,6 +80,7 @@ For each configured path (e.g., "userdata"), the adapter creates:
67
80
  - **`tidy.0.userdata.deadCount`** (number): Number of dead datapoints
68
81
  - **`tidy.0.userdata.staleCount`** (number): Number of stale datapoints
69
82
  - **`tidy.0.userdata.orphanedCount`** (number): Number of orphaned aliases
83
+ - **`tidy.0.userdata.exceptionCount`** (number): Number of datapoints excluded by the exceptions list
70
84
 
71
85
  When **Scan all objects (complete)** is enabled in the general settings, the adapter additionally creates:
72
86
 
@@ -77,6 +91,7 @@ When **Scan all objects (complete)** is enabled in the general settings, the ada
77
91
  - **`tidy.0.complete.deadCount`** (number): Number of dead datapoints
78
92
  - **`tidy.0.complete.staleCount`** (number): Number of stale datapoints
79
93
  - **`tidy.0.complete.orphanedCount`** (number): Number of orphaned aliases
94
+ - **`tidy.0.complete.exceptionCount`** (number): Number of datapoints excluded by the exceptions list
80
95
 
81
96
  The complete scan uses the same JSON result structure as path-based scans. Automatic scans include the complete scan when this option is enabled.
82
97
 
@@ -129,12 +144,28 @@ The `result` state contains a JSON array with the following fields for each data
129
144
  ### Basic Setup
130
145
 
131
146
  1. Install and configure the adapter
132
- 2. Add a path to scan (e.g., `0_userdata.0`)
147
+ 2. Add a path to scan using the object picker (e.g., `0_userdata.0`) or type it manually
133
148
  3. Give it a name (e.g., "userdata")
134
149
  4. Save configuration
135
150
  5. The adapter will immediately perform an initial scan
136
151
  6. View results in `tidy.0.userdata.result`
137
152
 
153
+ ### Multi-Instance Scan Paths
154
+
155
+ To scan all instances of an adapter, remove the instance number from the path after picking:
156
+
157
+ - `alias.0` → scan only the first alias instance
158
+ - `alias` → scan `alias.0`, `alias.1`, and any other alias instances
159
+
160
+ The path field remains fully editable after using the object picker.
161
+
162
+ ### Exceptions
163
+
164
+ 1. Open the **Exceptions** tab in the adapter configuration
165
+ 2. Add datapoints that should be ignored (e.g. rarely updated configuration values)
166
+ 3. Pick a single state for one datapoint, or a folder to exclude a whole subtree
167
+ 4. Save configuration — excluded datapoints no longer appear in scan results or counts
168
+
138
169
  ### VIS Integration
139
170
 
140
171
  Use the JSON result with a table widget to display and sort your datapoints:
@@ -174,6 +205,10 @@ If you like our work and would like to support us, we appreciate any donation.
174
205
  <!--
175
206
  ### **WORK IN PROGRESS**
176
207
  -->
208
+ ### 0.2.0 (2026-06-10)
209
+ - (skvarel) Added exceptions incl. count state per scan channel showing how many datapoints were excluded
210
+ - (skvarel) Replaced manual path input with object picker on Scan Paths tab; paths remain editable for multi-instance scans
211
+
177
212
  ### 0.1.7 (2026-06-07)
178
213
  - (skvarel) Migrated project rules from GitHub Copilot to Cursor rules
179
214
  - (skvarel) Fixed adapter checker warning for automatic scan interval
@@ -193,9 +228,6 @@ If you like our work and would like to support us, we appreciate any donation.
193
228
  ### 0.1.4 (2026-05-25)
194
229
  - (skvarel) Revised titel and desciption
195
230
 
196
- ### 0.1.3 (2026-05-24)
197
- - (skvarel) Fixed repo checker issue
198
-
199
231
  ## Older changes
200
232
  - [CHANGELOG_OLD.md](CHANGELOG_OLD.md)
201
233
 
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "Automatic Scanning": "Automatisches Scannen",
3
3
  "Check alias targets": "Alias-Ziele prüfen",
4
- "Configure which paths to scan for unused datapoints. Each path will get its own result state with a JSON table.": "Konfiguriere, welche Pfade nach ungenutzten Datenpunkten gescannt werden sollen. Jeder Pfad erhält einen eigenen Ergebnis-Datenpunkt mit einer JSON-Tabelle.",
4
+ "Comment (optional)": "Kommentar (optional)",
5
+ "Configure which paths to scan for unused datapoints. Use the object picker or type a path manually. Each path will get its own result state with a JSON table.": "Konfiguriere, welche Pfade nach ungenutzten Datenpunkten gescannt werden sollen. Nutze die Objektauswahl oder gib einen Pfad manuell ein. Jeder Pfad erhält einen eigenen Ergebnis-Datenpunkt mit einer JSON-Tabelle.",
6
+ "Datapoints listed on the Exceptions tab are omitted from all scan results and statistics. Use this for configuration values that rarely change but should not appear as dead or stale.\n\nPick a single state to exclude one datapoint, or pick a folder/channel to exclude an entire subtree.\n\nEach scan channel provides exceptionCount showing how many datapoints were excluded during the last scan (0 if none).": "Datenpunkte aus dem Tab „Ausnahmen“ erscheinen weder in Scan-Ergebnissen noch in Statistiken. Nutze das für Konfigurationswerte, die sich selten ändern (z. B. gespeicherter Radiosender fürs Wecker-Skript).\nWähle einen einzelnen Datenpunkt oder einen Ordner/Kanal, um einen ganzen Zweig auszuschließen.\n\nJeder Scan-Kanal hat den Datenpunkt exceptionCount – er zeigt, wie viele Datenpunkte beim letzten Scan ausgeschlossen wurden (0 wenn keine).\n\n",
7
+ "Datapoints listed on the Exceptions tab are omitted from all scan results and statistics. Use this for configuration values that rarely change but should not appear as dead or stale.\n\nUse the picker to select individual datapoints (states). To exclude an entire folder or subtree, type the path directly into the field (e.g. 0_userdata.0.config).\n\nEach scan channel provides exceptionCount showing how many datapoints were excluded during the last scan (0 if none).": "Datenpunkte im Tab Ausnahmen erscheinen weder in Scan-Ergebnissen noch in Statistiken. Nutze das für Konfigurationswerte, die sich selten ändern.\n\nNutze die Auswahl für einzelne Datenpunkte (States). Um einen ganzen Ordner oder Zweig auszuschließen, gib den Pfad direkt ins Feld ein (z. B. 0_userdata.0.config).\n\nJeder Scan-Kanal hat den Datenpunkt exceptionCount - er zeigt, wie viele Datenpunkte beim letzten Scan ausgeschlossen wurden (0 wenn keine).",
5
8
  "Datapoints not updated for this many days are marked as 'dead'": "Datenpunkte, die seit so vielen Tagen nicht aktualisiert wurden, werden als 'inaktiv' markiert",
6
9
  "Datapoints not updated for this many days are marked as 'stale'": "Datenpunkte, die seit so vielen Tagen nicht aktualisiert wurden, werden als 'veraltet' markiert",
7
10
  "Days until 'dead' (critical)": "Tage bis 'inaktiv' (kritisch)",
@@ -11,28 +14,44 @@
11
14
  "Each scan result contains a JSON array with the following fields per datapoint:": "Jedes Scanergebnis enthält ein JSON-Array mit den folgenden 10 Feldern pro Datenpunkt:",
12
15
  "Enable automatic scans": "Automatisches Scannen aktivieren",
13
16
  "Enabled": "Aktiviert",
14
- "Enter the full path, e.g. 0_userdata.0. Folders (type: folder) must be entered manually. The instance number is optional.": "Gib hier den vollständigen Pfad ein, z.B. 0_userdata.0. Ordner (Typ: Ordner) müssen manuell eingegeben werden. Die Instanznummer ist optional.",
17
+ "Enter scan paths on the Scan Paths tab or copy IDs from the Objects tab.\n\nTo scan all instances of an adapter, remove the instance number from the path (e.g. alias.0 alias). This matches alias.0, alias.1, and so on.": "Gib Scan-Pfade auf dem Tab „Scan-Pfade“ ein oder kopiere IDs aus dem Tab „Objekte“.\n\nUm alle Instanzen eines Adapters zu scannen, entferne die Instanznummer aus dem Pfad (z. B. alias.0 alias). Das trifft alias.0, alias.1 usw.",
18
+ "Enter the scan path (e.g. 0_userdata.0, alias, javascript.0). Copy from the Objects tab if needed. Remove the instance number (alias.0 → alias) to scan all instances.": "Scanpfad eingeben (z. B. 0_userdata.0, alias, javascript.0). Bei Bedarf aus dem Tab „Objekte“ kopieren. Instanznummer entfernen (alias.0 → alias), um alle Instanzen zu scannen.",
19
+ "Exceptions": "Ausnahmen",
20
+ "Exclude datapoints from scan results that are intentionally static or should be ignored (e.g. configuration values that rarely change). Select a single datapoint or a folder to exclude everything beneath it.": "Schließe Datenpunkte von Scan-Ergebnissen aus, die absichtlich statisch sind oder ignoriert werden sollen (z. B. Konfigurationswerte, die sich selten ändern). Wähle einen einzelnen Datenpunkt oder einen Ordner, um alles darunter auszuschließen.",
21
+ "Exclude datapoints from scan results that are intentionally static or should be ignored. Use the picker to select individual datapoints. To exclude an entire folder, type the path manually (e.g. 0_userdata.0.config).": "Schließe Datenpunkte von Scan-Ergebnissen aus, die absichtlich statisch sind oder ignoriert werden sollen. Nutze die Auswahl für einzelne Datenpunkte. Um einen ganzen Ordner auszuschließen, den Pfad manuell eingeben (z. B. 0_userdata.0.config).",
22
+ "Excluded datapoints": "Ausgeschlossene Datenpunkte",
15
23
  "Field": "Schlüssel",
16
- "Field descriptions": "Feldbeschreibungen",
17
- "Field descriptions (English):": "Feldbeschreibungen (Englisch):",
18
- "For German tables: Use status_de and issue_de columns\nFor English tables: Use status and issue columns\n\nFilter by 'issue != null' to show only problematic datapoints.": "Für deutsche Tabellen: Verwende status_de und issue_de Spalten\nFür englische Tabellen: Verwende status und issue Spalten\n\nFiltere nach 'issue != null' um nur problematische Datenpunkte anzuzeigen.",
24
+ "For German tables: Use status_de and issue_de columns\nFor English tables: Use status and issue columns\n\nFilter by 'issue != null' to show only problematic datapoints.": "Für deutsche Tabellen: Verwende status_de und issue_de Spalten.\nFür englische Tabellen: Verwende status und issue Spalten.\n\nFiltere nach 'issue != null' um nur problematische Datenpunkte anzuzeigen.\n\n",
19
25
  "For alias.* paths: Check if target datapoints exist (ghost detection)": "Für alias.*-Pfade: Prüfen, ob Ziel-Datenpunkte existieren (Geister-Erkennung)",
20
26
  "General Settings": "Allgemeine Einstellungen",
21
27
  "Help & Documentation": "Hilfe & Dokumentation",
22
28
  "How often the automatic scan should run (minimum 1 hour)": "Wie oft der automatische Scan ausgeführt werden soll (mindestens 1 Stunde)",
23
29
  "If enabled, the adapter will scan the entire object tree and store the result in a separate 'complete' result channel.": "Wenn aktiviert, scannt der Adapter den gesamten Objektbaum und speichert das Ergebnis in einem separaten 'complete'-Verzeichnis.",
24
30
  "JSON Table Field Description": "JSON-Tabellen-Feldbeschreibung",
31
+ "Name": "Name",
25
32
  "Name (for result state)": "Name (für Ergebnis-Datenpunkt)",
26
33
  "Name (for result state, optional)": "Name (für Ergebnis-Datenpunkt, optional)",
34
+ "Object": "Objekt",
35
+ "Optional note, e.g. alarm clock radio station": "Optionaler Hinweis, z.B. Radiowecker",
27
36
  "Optional. If empty, the path will be used as name.": "Optional. Wenn leer, wird der Pfad als Name verwendet.",
28
- "Path (e.g. 0_userdata.0 or alias.0 - The instance number is optional.)": "Pfad (z. B. 0_userdata.0 oder alias.0 – Die Instanznummer ist optional.)",
29
37
  "Path Configuration": "Pfad-Konfiguration",
30
38
  "Paths to scan": "Zu scannende Pfade",
39
+ "Pick a folder/channel to exclude an entire subtree. To exclude a single state, type its ID directly into the field (e.g. 0_userdata.0.radio.station).": "Wähle einen Ordner/Kanal, um einen gesamten Zweig auszuschließen. Für einen einzelnen Datenpunkt die ID direkt ins Feld tippen (z. B. 0_userdata.0.radio.station).",
40
+ "Pick an adapter instance or subfolder (e.g. 0_userdata.0, alias.0). The path stays editable — remove the instance number (alias.0 → alias) to scan all instances.": "Wähle eine Adapter-Instanz oder einen Unterordner (z. B. 0_userdata.0, alias.0). Der Pfad bleibt bearbeitbar — entferne die Instanznummer (alias.0 → alias), um alle Instanzen zu scannen.",
41
+ "Pick an individual datapoint to exclude it. To exclude an entire folder, type the folder path directly (e.g. 0_userdata.0.config).": "Wähle einen einzelnen Datenpunkt zum Ausschließen. Um einen ganzen Ordner auszuschließen, den Pfad direkt eingeben (z. B. 0_userdata.0.config).",
31
42
  "Purpose": "Zweck",
32
43
  "Scan Paths": "Scan-Pfade",
33
44
  "Scan all objects (complete)": "Alle Objekte scannen (Komplett)",
34
45
  "Scan interval (hours)": "Scan-Intervall (Stunden)",
46
+ "Scan path": "Scanpfad",
47
+ "Tip: The path stays editable after picking. Remove the instance number (e.g. alias.0 → alias) to scan all instances of an adapter.": "Tipp: Der Pfad bleibt nach der Auswahl bearbeitbar. Entferne die Instanznummer (z. B. alias.0 → alias), um alle Instanzen eines Adapters zu scannen.",
48
+ "Tip: The path stays editable after picking. Remove the instance number (e.g. alias.0 → alias) to scan all instances. You can also copy any object ID from the Objects tab and paste it directly into the path field.": "Tipp: Der Pfad bleibt nach der Auswahl bearbeitbar. Entferne die Instanznummer (z. B. alias.0 → alias), um alle Instanzen zu scannen. Du kannst auch jede Objekt-ID aus dem Objekte-Tab kopieren und direkt ins Pfadfeld einfügen.",
35
49
  "Usage in VIS Widgets": "Verwendung in VIS-Widgets",
50
+ "Use the object picker on the Scan Paths tab or type a path manually. The path stays editable after picking.\nTo scan all instances of an adapter, remove the instance number from the path (e.g. alias.0 → alias). This matches alias.0, alias.1, and so on.": "Verwenden Sie die Objektauswahl auf der Registerkarte „Scanpfade“ oder geben Sie manuell einen Pfad ein. Der Pfad bleibt nach der Auswahl bearbeitbar.\n\nUm alle Instanzen eines Adapters zu scannen, entfernen Sie die Instanznummer aus dem Pfad (z. B. alias.0 → alias). Dies entspricht alias.0, alias.1 usw.",
36
51
  "When enabled, all configured paths will be scanned automatically at the specified interval": "Wenn aktiviert, werden alle konfigurierten Pfade automatisch im angegebenen Intervall gescannt",
52
+ "e.g. 0_userdata.0 or alias": "z. B. 0_userdata.0 oder alias",
53
+ "help_json_fields": "<table style=\"width:100%;border-collapse:collapse;font-size:0.875rem\"><thead><tr style=\"border-bottom:1px solid #546e7a\"><th style=\"text-align:left;padding:8px 6px;width:6%\">Nr.</th><th style=\"text-align:left;padding:8px 6px;width:14%\">Schlüssel</th><th style=\"text-align:left;padding:8px 6px;width:40%\">Beschreibung</th><th style=\"text-align:left;padding:8px 6px\">Zweck</th></tr></thead><tbody><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">01</td><td style=\"padding:6px\"><code>id</code></td><td style=\"padding:6px\">Vollständiger Datenpunkt-Pfad</td><td style=\"padding:6px\">Eindeutige Identifikation</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">02</td><td style=\"padding:6px\"><code>name</code></td><td style=\"padding:6px\">common.name oder letzter Teil der ID</td><td style=\"padding:6px\">Benutzerfreundlicher Name</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">03</td><td style=\"padding:6px\"><code>last_ts</code></td><td style=\"padding:6px\">Unix-Zeitstempel (ms) oder null</td><td style=\"padding:6px\">Sortierung im Hintergrund</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">04</td><td style=\"padding:6px\"><code>last_ts_iso</code></td><td style=\"padding:6px\">Formatiertes Datums-String</td><td style=\"padding:6px\">Anzeige in der Tabelle</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">05</td><td style=\"padding:6px\"><code>value</code></td><td style=\"padding:6px\">Aktueller Datenpunkt-Wert</td><td style=\"padding:6px\">Letzte Prüfung vor dem Löschen</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">06</td><td style=\"padding:6px\"><code>status</code></td><td style=\"padding:6px\">active, dead, stale, undefined, orphaned</td><td style=\"padding:6px\">Klassifikation (Englisch)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">07</td><td style=\"padding:6px\"><code>status_de</code></td><td style=\"padding:6px\">aktiv, inaktiv, veraltet, undefiniert, verwaist</td><td style=\"padding:6px\">Klassifikation (Deutsch)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">08</td><td style=\"padding:6px\"><code>issue</code></td><td style=\"padding:6px\">dead, stale, orphaned_alias oder null</td><td style=\"padding:6px\">Filterkriterium (null = OK)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">09</td><td style=\"padding:6px\"><code>issue_de</code></td><td style=\"padding:6px\">inaktiv, veraltet, verwaistes Alias oder null</td><td style=\"padding:6px\">Filterkriterium (Deutsch)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">10</td><td style=\"padding:6px\"><code>size</code></td><td style=\"padding:6px\">JSON.stringify(val).length</td><td style=\"padding:6px\">Findet Speicherfresser</td></tr></tbody></table>",
54
+ "help_readme": "<b>Für eine vollständige Dokumentation klicke hier unten:</b><br><br>• <a href=\"https://github.com/inventwo/ioBroker.tidy/blob/main/README.md\">Adapter-Dokumentation</a>",
55
+ "paypal_donate": "Falls du uns unterstützen möchtest.",
37
56
  "tidy adapter settings": "Adaptereinstellungen für tidy"
38
57
  }
@@ -1,38 +1,57 @@
1
1
  {
2
2
  "Automatic Scanning": "Automatic Scanning",
3
3
  "Check alias targets": "Check alias targets",
4
- "Configure which paths to scan for unused datapoints. Each path will get its own result state with a JSON table.": "Configure which paths to scan for unused datapoints. Each path will get its own result state with a JSON table.",
4
+ "Comment (optional)": "Comment (optional)",
5
+ "Configure which paths to scan for unused datapoints. Use the object picker or type a path manually. Each path will get its own result state with a JSON table.": "Configure which paths to scan for unused datapoints. Use the object picker or type a path manually. Each path will get its own result state with a JSON table.",
6
+ "Pick an adapter instance or subfolder (e.g. 0_userdata.0, alias.0). The path stays editable — remove the instance number (alias.0 → alias) to scan all instances.": "Pick an adapter instance or subfolder (e.g. 0_userdata.0, alias.0). The path stays editable — remove the instance number (alias.0 → alias) to scan all instances.",
7
+ "Datapoints listed on the Exceptions tab are omitted from all scan results and statistics. Use this for configuration values that rarely change but should not appear as dead or stale.\n\nPick a single state to exclude one datapoint, or pick a folder/channel to exclude an entire subtree.\n\nEach scan channel provides exceptionCount showing how many datapoints were excluded during the last scan (0 if none).": "Datapoints listed on the Exceptions tab are omitted from all scan results and statistics. Use this for configuration values that rarely change but should not appear as dead or stale.\n\nPick a single state to exclude one datapoint, or pick a folder/channel to exclude an entire subtree.\n\nEach scan channel provides exceptionCount showing how many datapoints were excluded during the last scan (0 if none).\n\n",
8
+ "Datapoints listed on the Exceptions tab are omitted from all scan results and statistics. Use this for configuration values that rarely change but should not appear as dead or stale.\n\nUse the picker to select individual datapoints (states). To exclude an entire folder or subtree, type the path directly into the field (e.g. 0_userdata.0.config).\n\nEach scan channel provides exceptionCount showing how many datapoints were excluded during the last scan (0 if none).": "Datapoints listed on the Exceptions tab are omitted from all scan results and statistics. Use this for configuration values that rarely change but should not appear as dead or stale.\n\nUse the picker to select individual datapoints (states). To exclude an entire folder or subtree, type the path directly into the field (e.g. 0_userdata.0.config).\n\nEach scan channel provides exceptionCount showing how many datapoints were excluded during the last scan (0 if none).",
5
9
  "Datapoints not updated for this many days are marked as 'dead'": "Datapoints not updated for this many days are marked as 'dead'",
6
10
  "Datapoints not updated for this many days are marked as 'stale'": "Datapoints not updated for this many days are marked as 'stale'",
7
11
  "Days until 'dead' (critical)": "Days until 'dead' (critical)",
8
12
  "Days until 'stale' (warning)": "Days until 'stale' (warning)",
9
- "Detection Thresholds": "Detection Thresholds",
10
13
  "Description": "Description",
14
+ "Detection Thresholds": "Detection Thresholds",
11
15
  "Each scan result contains a JSON array with the following fields per datapoint:": "Each scan result contains a JSON array with the following 10 fields per datapoint:",
12
16
  "Enable automatic scans": "Enable automatic scans",
13
17
  "Enabled": "Enabled",
14
- "Enter the full path, e.g. 0_userdata.0. Folders (type: folder) must be entered manually. The instance number is optional.": "Enter the full path, e.g. 0_userdata.0. Folders (type: folder) must be entered manually. The instance number is optional.",
18
+ "Exceptions": "Exceptions",
19
+ "Exclude datapoints from scan results that are intentionally static or should be ignored (e.g. configuration values that rarely change). Select a single datapoint or a folder to exclude everything beneath it.": "Exclude datapoints from scan results that are intentionally static or should be ignored (e.g. configuration values that rarely change). Select a single datapoint or a folder to exclude everything beneath it.",
20
+ "Exclude datapoints from scan results that are intentionally static or should be ignored. Use the picker to select individual datapoints. To exclude an entire folder, type the path manually (e.g. 0_userdata.0.config).": "Exclude datapoints from scan results that are intentionally static or should be ignored. Use the picker to select individual datapoints. To exclude an entire folder, type the path manually (e.g. 0_userdata.0.config).",
21
+ "Excluded datapoints": "Excluded datapoints",
15
22
  "Field": "Key",
16
- "Field descriptions": "Field descriptions",
17
- "Field descriptions (English):": "Field descriptions (English):",
18
- "For German tables: Use status_de and issue_de columns\nFor English tables: Use status and issue columns\n\nFilter by 'issue != null' to show only problematic datapoints.": "For German tables: Use status_de and issue_de columns\nFor English tables: Use status and issue columns\n\nFilter by 'issue != null' to show only problematic datapoints.",
23
+ "For German tables: Use status_de and issue_de columns\nFor English tables: Use status and issue columns\n\nFilter by 'issue != null' to show only problematic datapoints.": "For German tables: Use status_de and issue_de columns.\nFor English tables: Use status and issue columns\n\nFilter by 'issue != null' to show only problematic datapoints.\n\n",
19
24
  "For alias.* paths: Check if target datapoints exist (ghost detection)": "For alias.* paths: Check if target datapoints exist (ghost detection)",
20
25
  "General Settings": "General Settings",
21
26
  "Help & Documentation": "Help & Documentation",
27
+ "help_readme": "<b>For complete documentation, click here below:</b><br><br>• <a href=\"https://github.com/inventwo/ioBroker.tidy/blob/main/README.md\">Adapter documentation</a>",
22
28
  "How often the automatic scan should run (minimum 1 hour)": "How often the automatic scan should run (minimum 1 hour)",
23
29
  "If enabled, the adapter will scan the entire object tree and store the result in a separate 'complete' result channel.": "If enabled, the adapter will scan the entire object tree and store the result in a separate 'complete' result channel.",
24
30
  "JSON Table Field Description": "JSON Table Field Description",
31
+ "Name": "Name",
25
32
  "Name (for result state)": "Name (for result state)",
26
33
  "Name (for result state, optional)": "Name (for result state, optional)",
34
+ "Object": "Object",
35
+ "Optional note, e.g. alarm clock radio station": "Optional note, e.g. alarm clock radio station",
27
36
  "Optional. If empty, the path will be used as name.": "Optional. If empty, the path will be used as name.",
28
- "Path (e.g. 0_userdata.0 or alias.0 - The instance number is optional.)": "Path (e.g. 0_userdata.0 or alias.0 - The instance number is optional.)",
37
+ "paypal_donate": "If you would like to support us.",
29
38
  "Path Configuration": "Path Configuration",
30
39
  "Paths to scan": "Paths to scan",
40
+ "Enter scan paths on the Scan Paths tab or copy IDs from the Objects tab.\n\nTo scan all instances of an adapter, remove the instance number from the path (e.g. alias.0 → alias). This matches alias.0, alias.1, and so on.": "Enter scan paths on the Scan Paths tab or copy IDs from the Objects tab.\n\nTo scan all instances of an adapter, remove the instance number from the path (e.g. alias.0 → alias). This matches alias.0, alias.1, and so on.",
41
+ "Enter the scan path (e.g. 0_userdata.0, alias, javascript.0). Copy from the Objects tab if needed. Remove the instance number (alias.0 → alias) to scan all instances.": "Enter the scan path (e.g. 0_userdata.0, alias, javascript.0). Copy from the Objects tab if needed. Remove the instance number (alias.0 → alias) to scan all instances.",
42
+ "e.g. 0_userdata.0 or alias": "e.g. 0_userdata.0 or alias",
31
43
  "Purpose": "Purpose",
32
44
  "Scan Paths": "Scan Paths",
33
45
  "Scan all objects (complete)": "Scan all objects (complete)",
34
46
  "Scan interval (hours)": "Scan interval (hours)",
47
+ "Scan path": "Scan path",
48
+ "Pick a folder/channel to exclude an entire subtree. To exclude a single state, type its ID directly into the field (e.g. 0_userdata.0.radio.station).": "Pick a folder/channel to exclude an entire subtree. To exclude a single state, type its ID directly into the field (e.g. 0_userdata.0.radio.station).",
49
+ "Pick an individual datapoint to exclude it. To exclude an entire folder, type the folder path directly (e.g. 0_userdata.0.config).": "Pick an individual datapoint to exclude it. To exclude an entire folder, type the folder path directly (e.g. 0_userdata.0.config).",
50
+ "Tip: The path stays editable after picking. Remove the instance number (e.g. alias.0 → alias) to scan all instances of an adapter.": "Tip: The path stays editable after picking. Remove the instance number (e.g. alias.0 → alias) to scan all instances of an adapter.",
51
+ "Tip: The path stays editable after picking. Remove the instance number (e.g. alias.0 → alias) to scan all instances. You can also copy any object ID from the Objects tab and paste it directly into the path field.": "Tip: The path stays editable after picking. Remove the instance number (e.g. alias.0 → alias) to scan all instances. You can also copy any object ID from the Objects tab and paste it directly into the path field.",
35
52
  "Usage in VIS Widgets": "Usage in VIS Widgets",
53
+ "Use the object picker on the Scan Paths tab or type a path manually. The path stays editable after picking.\nTo scan all instances of an adapter, remove the instance number from the path (e.g. alias.0 → alias). This matches alias.0, alias.1, and so on.": "Use the object picker on the Scan Paths tab or type a path manually. The path stays editable after picking.\n\nTo scan all instances of an adapter, remove the instance number from the path (e.g. alias.0 → alias). This matches alias.0, alias.1, and so on.",
36
54
  "When enabled, all configured paths will be scanned automatically at the specified interval": "When enabled, all configured paths will be scanned automatically at the specified interval",
55
+ "help_json_fields": "<table style=\"width:100%;border-collapse:collapse;font-size:0.875rem\"><thead><tr style=\"border-bottom:1px solid #546e7a\"><th style=\"text-align:left;padding:8px 6px;width:6%\">#</th><th style=\"text-align:left;padding:8px 6px;width:14%\">Key</th><th style=\"text-align:left;padding:8px 6px;width:40%\">Description</th><th style=\"text-align:left;padding:8px 6px\">Purpose</th></tr></thead><tbody><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">01</td><td style=\"padding:6px\"><code>id</code></td><td style=\"padding:6px\">Full datapoint path</td><td style=\"padding:6px\">Unique identification</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">02</td><td style=\"padding:6px\"><code>name</code></td><td style=\"padding:6px\">common.name or last part of ID</td><td style=\"padding:6px\">User-friendly name</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">03</td><td style=\"padding:6px\"><code>last_ts</code></td><td style=\"padding:6px\">Unix timestamp (ms) or null</td><td style=\"padding:6px\">Sorting in background</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">04</td><td style=\"padding:6px\"><code>last_ts_iso</code></td><td style=\"padding:6px\">Formatted date string</td><td style=\"padding:6px\">Display in table</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">05</td><td style=\"padding:6px\"><code>value</code></td><td style=\"padding:6px\">Current datapoint value</td><td style=\"padding:6px\">Final check before deletion</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">06</td><td style=\"padding:6px\"><code>status</code></td><td style=\"padding:6px\">active, dead, stale, undefined, orphaned</td><td style=\"padding:6px\">Classification (English)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">07</td><td style=\"padding:6px\"><code>status_de</code></td><td style=\"padding:6px\">aktiv, inaktiv, veraltet, undefiniert, verwaist</td><td style=\"padding:6px\">Classification (German)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">08</td><td style=\"padding:6px\"><code>issue</code></td><td style=\"padding:6px\">dead, stale, orphaned_alias, or null</td><td style=\"padding:6px\">Filter criterion (null = OK)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">09</td><td style=\"padding:6px\"><code>issue_de</code></td><td style=\"padding:6px\">inaktiv, veraltet, verwaistes Alias, or null</td><td style=\"padding:6px\">Filter criterion (German)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">10</td><td style=\"padding:6px\"><code>size</code></td><td style=\"padding:6px\">JSON.stringify(val).length</td><td style=\"padding:6px\">Finds storage hogs</td></tr></tbody></table>",
37
56
  "tidy adapter settings": "Adapter settings for tidy"
38
57
  }
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "Automatic Scanning": "Escaneo automático",
3
3
  "Check alias targets": "Verificar destinos de alias",
4
- "Configure which paths to scan for unused datapoints. Each path will get its own result state with a JSON table.": "Configure qué rutas escanear en busca de puntos de datos no utilizados. Cada ruta obtendrá su propio estado de resultado con una tabla JSON.",
4
+ "Comment (optional)": "Comentario (opcional)",
5
+ "Configure which paths to scan for unused datapoints. Use the object picker or type a path manually. Each path will get its own result state with a JSON table.": "Configure qué rutas escanear en busca de puntos de datos no utilizados. Utilice el selector de objetos o escriba una ruta manualmente. Cada ruta obtendrá su propio estado de resultado con una tabla JSON.",
6
+ "Datapoints listed on the Exceptions tab are omitted from all scan results and statistics. Use this for configuration values that rarely change but should not appear as dead or stale.\n\nPick a single state to exclude one datapoint, or pick a folder/channel to exclude an entire subtree.\n\nEach scan channel provides exceptionCount showing how many datapoints were excluded during the last scan (0 if none).": "Los puntos de datos enumerados en la pestaña Excepciones se omiten de todos los resultados y estadísticas del análisis. Utilícelo para valores de configuración que rara vez cambian pero que no deberían aparecer inactivos o obsoletos.\n\nElija un solo estado para excluir un punto de datos o elija una carpeta/canal para excluir un subárbol completo.\n\nCada canal de escaneo proporciona un recuento de excepciones que muestra cuántos puntos de datos se excluyeron durante el último escaneo (0 si no hay ninguno).",
7
+ "Datapoints listed on the Exceptions tab are omitted from all scan results and statistics. Use this for configuration values that rarely change but should not appear as dead or stale.\n\nUse the picker to select individual datapoints (states). To exclude an entire folder or subtree, type the path directly into the field (e.g. 0_userdata.0.config).\n\nEach scan channel provides exceptionCount showing how many datapoints were excluded during the last scan (0 if none).": "Los puntos de datos enumerados en la pestaña Excepciones se omiten de todos los resultados y estadísticas del análisis. Utilícelo para valores de configuración que rara vez cambian pero que no deberían aparecer inactivos o obsoletos.\n\nUtilice el selector para seleccionar puntos de datos individuales (estados). Para excluir una carpeta o un subárbol completo, escriba la ruta directamente en el campo (por ejemplo, 0_userdata.0.config).\n\nCada canal de escaneo proporciona un recuento de excepciones que muestra cuántos puntos de datos se excluyeron durante el último escaneo (0 si no hay ninguno).",
5
8
  "Datapoints not updated for this many days are marked as 'dead'": "Los puntos de datos que no se actualizan durante tantos días se marcan como \"inactivos\"",
6
9
  "Datapoints not updated for this many days are marked as 'stale'": "Los puntos de datos que no se actualizan durante tantos días se marcan como \"obsoletos\"",
7
10
  "Days until 'dead' (critical)": "Días hasta la 'muerte' (crítico)",
@@ -11,28 +14,52 @@
11
14
  "Each scan result contains a JSON array with the following fields per datapoint:": "Cada resultado del análisis contiene una matriz JSON con los siguientes 10 campos por punto de datos:",
12
15
  "Enable automatic scans": "Habilitar escaneos automáticos",
13
16
  "Enabled": "Activado",
14
- "Enter the full path, e.g. 0_userdata.0. Folders (type: folder) must be entered manually. The instance number is optional.": "Ingrese la ruta completa, p.e. 0_datosdeusuario.0. Las carpetas (tipo: carpeta) deben ingresarse manualmente. El número de instancia es opcional.",
17
+ "Enter scan paths on the Scan Paths tab or copy IDs from the Objects tab.\n\nTo scan all instances of an adapter, remove the instance number from the path (e.g. alias.0 alias). This matches alias.0, alias.1, and so on.": "Ingrese las rutas de escaneo en la pestaña Rutas de escaneo o copie las ID desde la pestaña Objetos.\n\nPara escanear todas las instancias de un adaptador, elimine el número de instancia de la ruta (por ejemplo, alias.0 → alias). Esto coincide con alias.0, alias.1, etc.",
18
+ "Enter the scan path (e.g. 0_userdata.0, alias, javascript.0). Copy from the Objects tab if needed. Remove the instance number (alias.0 → alias) to scan all instances.": "Ingrese la ruta de escaneo (por ejemplo, 0_userdata.0, alias, javascript.0). Copie desde la pestaña Objetos si es necesario. Elimine el número de instancia (alias.0 → alias) para escanear todas las instancias.",
19
+ "Exceptions": "Excepciones",
20
+ "Exclude datapoints from scan results that are intentionally static or should be ignored (e.g. configuration values that rarely change). Select a single datapoint or a folder to exclude everything beneath it.": "Excluya puntos de datos de los resultados del análisis que sean intencionalmente estáticos o que deban ignorarse (por ejemplo, valores de configuración que rara vez cambian). Seleccione un único punto de datos o una carpeta para excluir todo lo que se encuentra debajo de él.",
21
+ "Exclude datapoints from scan results that are intentionally static or should be ignored. Use the picker to select individual datapoints. To exclude an entire folder, type the path manually (e.g. 0_userdata.0.config).": "Excluya puntos de datos de los resultados del análisis que sean intencionalmente estáticos o que deban ignorarse. Utilice el selector para seleccionar puntos de datos individuales. Para excluir una carpeta completa, escriba la ruta manualmente (por ejemplo, 0_userdata.0.config).",
22
+ "Excluded datapoints": "Puntos de datos excluidos",
15
23
  "Field": "Llave",
16
- "Field descriptions": "Descripciones de campo",
17
- "Field descriptions (English):": "Descripciones de campo (inglés):",
18
- "For German tables: Use status_de and issue_de columns\nFor English tables: Use status and issue columns\n\nFilter by 'issue != null' to show only problematic datapoints.": "Para tablas alemanas: use las columnas status_de y issues_de\nPara tablas en inglés: use columnas de estado y problema\n\nFiltre por 'problema! = nulo' para mostrar solo puntos de datos problemáticos.",
24
+ "For German tables: Use status_de and issue_de columns\nFor English tables: Use status and issue columns\n\nFilter by 'issue != null' to show only problematic datapoints.": "Para tablas alemanas: utilice las columnas status_de y issues_de.\nPara tablas en inglés: use columnas de estado y problema\n\nFiltre por 'problema! = nulo' para mostrar solo puntos de datos problemáticos.",
19
25
  "For alias.* paths: Check if target datapoints exist (ghost detection)": "Para rutas alias.*: compruebe si existen puntos de datos de destino (detección de fantasmas)",
20
26
  "General Settings": "Configuraciones generales",
21
27
  "Help & Documentation": "Ayuda y documentación",
22
28
  "How often the automatic scan should run (minimum 1 hour)": "Con qué frecuencia debe ejecutarse el análisis automático (mínimo 1 hora)",
23
29
  "If enabled, the adapter will scan the entire object tree and store the result in a separate 'complete' result channel.": "Si está habilitado, el adaptador escaneará todo el árbol de objetos y almacenará el resultado en un canal de resultados \"completo\" separado.",
24
30
  "JSON Table Field Description": "Descripción del campo de la tabla JSON",
31
+ "Name": "Nombre",
25
32
  "Name (for result state)": "Nombre (para el estado del resultado)",
26
33
  "Name (for result state, optional)": "Nombre (para el estado del resultado, opcional)",
34
+ "Object": "Objeto",
35
+ "Optional note, e.g. alarm clock radio station": "Nota opcional, p.e. estación de radio despertador",
27
36
  "Optional. If empty, the path will be used as name.": "Opcional. Si está vacía, la ruta se utilizará como nombre.",
28
- "Path (e.g. 0_userdata.0 or alias.0 - The instance number is optional.)": "Ruta (por ejemplo, 0_userdata.0 o alias.0: el número de instancia es opcional).",
29
37
  "Path Configuration": "Configuración de ruta",
30
38
  "Paths to scan": "Rutas para escanear",
39
+ "Pick a folder in the object tree to exclude an entire subtree, or type a single state ID manually (e.g. 0_userdata.0.radio.station).": "Elija una carpeta en el árbol de objetos para excluir un subárbol completo o escriba manualmente una ID de estado única (por ejemplo, 0_userdata.0.radio.station).",
40
+ "Pick a folder in the object tree, or type a path manually (e.g. 0_userdata.0). Remove the instance number (alias.0 → alias) to scan all instances.": "Elija una carpeta en el árbol de objetos o escriba una ruta manualmente (por ejemplo, 0_userdata.0). Elimine el número de instancia (alias.0 → alias) para escanear todas las instancias.",
41
+ "Pick a folder/channel to exclude an entire subtree. To exclude a single state, type its ID directly into the field (e.g. 0_userdata.0.radio.station).": "Elija una carpeta/canal para excluir un subárbol completo. Para excluir un solo estado, escriba su ID directamente en el campo (por ejemplo, 0_userdata.0.radio.station).",
42
+ "Pick a path from the object tree or type manually. Remove the instance number (e.g. alias.0 → alias) to scan all instances of an adapter.": "Elija una ruta del árbol de objetos o escríbala manualmente. Elimine el número de instancia (por ejemplo, alias.0 → alias) para escanear todas las instancias de un adaptador.",
43
+ "Pick an adapter instance (e.g. 0_userdata.0, alias.0). The path stays editable — append a subfolder or remove the instance number (alias.0 → alias) after picking.": "Elija una instancia de adaptador (por ejemplo, 0_userdata.0, alias.0). La ruta sigue siendo editable: agregue una subcarpeta o elimine el número de instancia (alias.0 → alias) después de seleccionarla.",
44
+ "Pick an adapter instance (e.g. 0_userdata.0, alias.0). The path stays editable — remove the instance number (alias.0 → alias) to scan all instances.": "Elija una instancia de adaptador (por ejemplo, 0_userdata.0, alias.0). La ruta sigue siendo editable: elimine el número de instancia (alias.0 → alias) para escanear todas las instancias.",
45
+ "Pick an adapter instance or subfolder (e.g. 0_userdata.0, alias.0). The path stays editable — remove the instance number (alias.0 → alias) to scan all instances.": "Elija una instancia o subcarpeta del adaptador (por ejemplo, 0_userdata.0, alias.0). La ruta sigue siendo editable: elimine el número de instancia (alias.0 → alias) para escanear todas las instancias.",
46
+ "Pick an individual datapoint to exclude it. To exclude an entire folder, type the folder path directly (e.g. 0_userdata.0.config).": "Elija un punto de datos individual para excluirlo. Para excluir una carpeta completa, escriba la ruta de la carpeta directamente (por ejemplo, 0_userdata.0.config).",
31
47
  "Purpose": "Objetivo",
32
48
  "Scan Paths": "Rutas de escaneo",
33
49
  "Scan all objects (complete)": "Escanear todos los objetos (completo)",
34
50
  "Scan interval (hours)": "Intervalo de escaneo (horas)",
51
+ "Scan path": "Ruta de escaneo",
52
+ "Select a datapoint or folder to exclude. Folders exclude all states beneath them.": "Seleccione un punto de datos o una carpeta para excluir. Las carpetas excluyen todos los estados debajo de ellas.",
53
+ "Tip: The path remains editable after picking. Remove the instance number (e.g. alias.0 → alias) to scan all instances of an adapter.": "Consejo: La ruta sigue siendo editable después de seleccionarla. Elimine el número de instancia (por ejemplo, alias.0 → alias) para escanear todas las instancias de un adaptador.",
54
+ "Tip: The path stays editable after picking. Remove the instance number (e.g. alias.0 → alias) to scan all instances of an adapter.": "Consejo: La ruta sigue siendo editable después de seleccionarla. Elimine el número de instancia (por ejemplo, alias.0 → alias) para escanear todas las instancias de un adaptador.",
55
+ "Tip: The path stays editable after picking. Remove the instance number (e.g. alias.0 → alias) to scan all instances. You can also copy any object ID from the Objects tab and paste it directly into the path field.": "Consejo: La ruta sigue siendo editable después de seleccionarla. Elimine el número de instancia (por ejemplo, alias.0 → alias) para escanear todas las instancias. También puede copiar cualquier ID de objeto desde la pestaña Objetos y pegarlo directamente en el campo de ruta.",
35
56
  "Usage in VIS Widgets": "Uso en widgets de VIS",
57
+ "Use the object picker on the Scan Paths tab or type a path manually. The path stays editable after picking.\n\nTo scan all instances of an adapter, remove the instance number from the path (e.g. alias.0 → alias). This matches alias.0, alias.1, and so on.": "Utilice el selector de objetos en la pestaña Rutas de escaneo o escriba una ruta manualmente. La ruta sigue siendo editable después de seleccionarla.\n\nPara escanear todas las instancias de un adaptador, elimine el número de instancia de la ruta (por ejemplo, alias.0 → alias). Esto coincide con alias.0, alias.1, etc.",
58
+ "Use the object picker on the Scan Paths tab or type a path manually. The path stays editable after picking.\nTo scan all instances of an adapter, remove the instance number from the path (e.g. alias.0 → alias). This matches alias.0, alias.1, and so on.": "Utilice el selector de objetos en la pestaña Rutas de escaneo o escriba una ruta manualmente. La ruta sigue siendo editable después de seleccionarla.\n\nPara escanear todas las instancias de un adaptador, elimine el número de instancia de la ruta (por ejemplo, alias.0 → alias). Esto coincide con alias.0, alias.1, etc.",
36
59
  "When enabled, all configured paths will be scanned automatically at the specified interval": "Cuando está habilitado, todas las rutas configuradas se escanearán automáticamente en el intervalo especificado",
60
+ "e.g. 0_userdata.0 or alias": "p.ej. 0_userdata.0 o alias",
61
+ "help_json_fields": "<table style=\"width:100%;border-collapse:collapse;font-size:0.875rem\"><thead><tr style=\"border-bottom:1px solid #546e7a\"><th style=\"text-align:left;padding:8px 6px;width:6%\">#</th><th style=\"text-align:left;padding:8px 6px;width:14%\">Clave</th><th style=\"text-align:left;padding:8px 6px;width:40%\">Descripción</th><th style=\"text-align:left;padding:8px 6px\">Propósito</th></tr></thead><tbody><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">01</td><td style=\"padding:6px\"><code>id</code></td><td style=\"padding:6px\">Ruta completa del punto de datos</td><td style=\"padding:6px\">Identificación única</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">02</td><td style=\"padding:6px\"><code>nombre</code></td><td style=\"padding:6px\">common.name o última parte del ID</td><td style=\"padding:6px\">Nombre fácil de usar</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">03</td><td style=\"padding:6px\"><code>last_ts</code></td><td style=\"padding:6px\">Marca de tiempo Unix (ms) o null</td><td style=\"padding:6px\">Ordenar fondo</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">04</td><td style=\"padding:6px\"><code>last_ts_iso</code></td><td style=\"padding:6px\">Cadena de fecha formateada</td><td style=\"padding:6px\">Mostrar en tabla</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">05</td><td style=\"padding:6px\"><code>valor</code></td><td style=\"padding:6px\">Valor del punto de datos actual</td><td style=\"padding:6px\">Comprobación final antes de la eliminación</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">06</td><td style=\"padding:6px\"><code>status</code></td><td style=\"padding:6px\">activo, muerto, obsoleto, indefinido, huérfano</td><td style=\"padding:6px\">Clasificación (inglés)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">07</td><td style=\"padding:6px\"><code>status_de</code></td><td style=\"padding:6px\">aktiv, inaktiv, veraltet, undefiniert, verwaist</td><td style=\"padding:6px\">Clasificación (alemán)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">08</td><td style=\"padding:6px\"><code>issue</code></td><td style=\"padding:6px\">muerto, obsoleto, alias_huérfano o nulo</td><td style=\"padding:6px\">Criterio de filtro (null = OK)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">09</td><td style=\"padding:6px\"><code>issue_de</code></td><td style=\"padding:6px\">inaktiv, veraltet, verwaistes Alias o null</td><td style=\"padding:6px\">Criterio de filtro (alemán)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">10</td><td style=\"padding:6px\"><code>size</code></td><td style=\"padding:6px\">JSON.stringify(val).length</td><td style=\"padding:6px\">Encuentra grandes cantidades de almacenamiento</td></tr></tbody></table>",
62
+ "help_readme": "<b>Para obtener la documentación completa, haga clic aquí a continuación:</b><br><br>• <a href=\"https://github.com/inventwo/ioBroker.tidy/blob/main/README.md\">Documentación del adaptador</a>",
63
+ "paypal_donate": "Si quieres apoyarnos.",
37
64
  "tidy adapter settings": "Configuración del adaptador para tidy"
38
65
  }
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "Automatic Scanning": "Numérisation automatique",
3
3
  "Check alias targets": "Vérifier les cibles d'alias",
4
- "Configure which paths to scan for unused datapoints. Each path will get its own result state with a JSON table.": "Configurez les chemins à analyser pour les points de données inutilisés. Chaque chemin obtiendra son propre état de résultat avec une table JSON.",
4
+ "Comment (optional)": "Commentaire (facultatif)",
5
+ "Configure which paths to scan for unused datapoints. Use the object picker or type a path manually. Each path will get its own result state with a JSON table.": "Configurez les chemins à analyser pour les points de données inutilisés. Utilisez le sélecteur d'objet ou saisissez un chemin manuellement. Chaque chemin obtiendra son propre état de résultat avec une table JSON.",
6
+ "Datapoints listed on the Exceptions tab are omitted from all scan results and statistics. Use this for configuration values that rarely change but should not appear as dead or stale.\n\nPick a single state to exclude one datapoint, or pick a folder/channel to exclude an entire subtree.\n\nEach scan channel provides exceptionCount showing how many datapoints were excluded during the last scan (0 if none).": "Les points de données répertoriés dans l'onglet Exceptions sont omis de tous les résultats d'analyse et statistiques. Utilisez-le pour les valeurs de configuration qui changent rarement mais ne doivent pas apparaître comme mortes ou obsolètes.\n\nChoisissez un seul état pour exclure un point de données ou choisissez un dossier/canal pour exclure un sous-arbre entier.\n\nChaque canal d'analyse fournit exceptionCount indiquant combien de points de données ont été exclus lors de la dernière analyse (0 si aucun).",
7
+ "Datapoints listed on the Exceptions tab are omitted from all scan results and statistics. Use this for configuration values that rarely change but should not appear as dead or stale.\n\nUse the picker to select individual datapoints (states). To exclude an entire folder or subtree, type the path directly into the field (e.g. 0_userdata.0.config).\n\nEach scan channel provides exceptionCount showing how many datapoints were excluded during the last scan (0 if none).": "Les points de données répertoriés dans l'onglet Exceptions sont omis de tous les résultats d'analyse et statistiques. Utilisez-le pour les valeurs de configuration qui changent rarement mais ne doivent pas apparaître comme mortes ou obsolètes.\n\nUtilisez le sélecteur pour sélectionner des points de données individuels (états). Pour exclure un dossier ou un sous-arbre entier, saisissez le chemin directement dans le champ (par exemple 0_userdata.0.config).\n\nChaque canal d'analyse fournit exceptionCount indiquant combien de points de données ont été exclus lors de la dernière analyse (0 si aucun).",
5
8
  "Datapoints not updated for this many days are marked as 'dead'": "Les points de données non mis à jour depuis autant de jours sont marqués comme « morts »",
6
9
  "Datapoints not updated for this many days are marked as 'stale'": "Les points de données non mis à jour depuis autant de jours sont marqués comme « périmés ».",
7
10
  "Days until 'dead' (critical)": "Jours avant « mort » (critique)",
@@ -11,28 +14,52 @@
11
14
  "Each scan result contains a JSON array with the following fields per datapoint:": "Chaque résultat d'analyse contient un tableau JSON avec les 10 champs suivants par point de données :",
12
15
  "Enable automatic scans": "Activer les analyses automatiques",
13
16
  "Enabled": "Activé",
14
- "Enter the full path, e.g. 0_userdata.0. Folders (type: folder) must be entered manually. The instance number is optional.": "Entrez le chemin complet, par ex. 0_userdata.0. Les dossiers (type : dossier) doivent être saisis manuellement. Le numéro d'instance est facultatif.",
17
+ "Enter scan paths on the Scan Paths tab or copy IDs from the Objects tab.\n\nTo scan all instances of an adapter, remove the instance number from the path (e.g. alias.0 alias). This matches alias.0, alias.1, and so on.": "Saisissez les chemins d'analyse dans l'onglet Chemins d'analyse ou copiez les ID à partir de l'onglet Objets.\n\nPour analyser toutes les instances d'un adaptateur, supprimez le numéro d'instance du chemin (par exemple alias.0 → alias). Cela correspond à alias.0, alias.1, etc.",
18
+ "Enter the scan path (e.g. 0_userdata.0, alias, javascript.0). Copy from the Objects tab if needed. Remove the instance number (alias.0 → alias) to scan all instances.": "Entrez le chemin d'analyse (par exemple 0_userdata.0, alias, javascript.0). Copiez depuis l'onglet Objets si nécessaire. Supprimez le numéro d'instance (alias.0 → alias) pour analyser toutes les instances.",
19
+ "Exceptions": "Exceptions",
20
+ "Exclude datapoints from scan results that are intentionally static or should be ignored (e.g. configuration values that rarely change). Select a single datapoint or a folder to exclude everything beneath it.": "Excluez les points de données des résultats d'analyse qui sont intentionnellement statiques ou qui doivent être ignorés (par exemple, les valeurs de configuration qui changent rarement). Sélectionnez un seul point de données ou un dossier pour exclure tout ce qui se trouve en dessous.",
21
+ "Exclude datapoints from scan results that are intentionally static or should be ignored. Use the picker to select individual datapoints. To exclude an entire folder, type the path manually (e.g. 0_userdata.0.config).": "Excluez les points de données des résultats d'analyse qui sont intentionnellement statiques ou qui doivent être ignorés. Utilisez le sélecteur pour sélectionner des points de données individuels. Pour exclure un dossier entier, saisissez le chemin manuellement (par exemple 0_userdata.0.config).",
22
+ "Excluded datapoints": "Points de données exclus",
15
23
  "Field": "Clé",
16
- "Field descriptions": "Description des champs",
17
- "Field descriptions (English):": "Descriptions des champs (anglais) :",
18
- "For German tables: Use status_de and issue_de columns\nFor English tables: Use status and issue columns\n\nFilter by 'issue != null' to show only problematic datapoints.": "Pour les tables allemandes : utilisez les colonnes status_de et issue_de\nPour les tableaux en anglais : utilisez les colonnes d'état et de problème\n\nFiltrez par « issue != null » pour afficher uniquement les points de données problématiques.",
24
+ "For German tables: Use status_de and issue_de columns\nFor English tables: Use status and issue columns\n\nFilter by 'issue != null' to show only problematic datapoints.": "Pour les tables allemandes : utilisez les colonnes status_de et issue_de.\nPour les tableaux en anglais : utilisez les colonnes d'état et de problème\n\nFiltrez par « issue != null » pour afficher uniquement les points de données problématiques.",
19
25
  "For alias.* paths: Check if target datapoints exist (ghost detection)": "Pour les chemins alias.* : Vérifiez si des points de données cibles existent (détection de fantômes)",
20
26
  "General Settings": "Paramètres généraux",
21
27
  "Help & Documentation": "Aide et documentation",
22
28
  "How often the automatic scan should run (minimum 1 hour)": "À quelle fréquence l’analyse automatique doit être exécutée (minimum 1 heure)",
23
29
  "If enabled, the adapter will scan the entire object tree and store the result in a separate 'complete' result channel.": "S'il est activé, l'adaptateur analysera l'intégralité de l'arborescence d'objets et stockera le résultat dans un canal de résultats « complet » distinct.",
24
30
  "JSON Table Field Description": "Description du champ du tableau JSON",
31
+ "Name": "Nom",
25
32
  "Name (for result state)": "Nom (pour l'état du résultat)",
26
33
  "Name (for result state, optional)": "Nom (pour l'état du résultat, facultatif)",
34
+ "Object": "Objet",
35
+ "Optional note, e.g. alarm clock radio station": "Remarque facultative, par ex. station de radio-réveil",
27
36
  "Optional. If empty, the path will be used as name.": "Facultatif. S'il est vide, le chemin sera utilisé comme nom.",
28
- "Path (e.g. 0_userdata.0 or alias.0 - The instance number is optional.)": "Chemin (par exemple 0_userdata.0 ou alias.0 - Le numéro d'instance est facultatif.)",
29
37
  "Path Configuration": "Configuration du chemin",
30
38
  "Paths to scan": "Chemins à scanner",
39
+ "Pick a folder in the object tree to exclude an entire subtree, or type a single state ID manually (e.g. 0_userdata.0.radio.station).": "Choisissez un dossier dans l'arborescence des objets pour exclure un sous-arbre entier ou saisissez manuellement un seul ID d'état (par exemple 0_userdata.0.radio.station).",
40
+ "Pick a folder in the object tree, or type a path manually (e.g. 0_userdata.0). Remove the instance number (alias.0 → alias) to scan all instances.": "Choisissez un dossier dans l'arborescence des objets ou saisissez un chemin manuellement (par exemple 0_userdata.0). Supprimez le numéro d'instance (alias.0 → alias) pour analyser toutes les instances.",
41
+ "Pick a folder/channel to exclude an entire subtree. To exclude a single state, type its ID directly into the field (e.g. 0_userdata.0.radio.station).": "Choisissez un dossier/canal pour exclure un sous-arbre entier. Pour exclure un seul état, saisissez son identifiant directement dans le champ (par exemple 0_userdata.0.radio.station).",
42
+ "Pick a path from the object tree or type manually. Remove the instance number (e.g. alias.0 → alias) to scan all instances of an adapter.": "Choisissez un chemin dans l’arborescence des objets ou saisissez-le manuellement. Supprimez le numéro d'instance (par exemple, alias.0 → alias) pour analyser toutes les instances d'un adaptateur.",
43
+ "Pick an adapter instance (e.g. 0_userdata.0, alias.0). The path stays editable — append a subfolder or remove the instance number (alias.0 → alias) after picking.": "Choisissez une instance d'adaptateur (par exemple 0_userdata.0, alias.0). Le chemin reste modifiable : ajoutez un sous-dossier ou supprimez le numéro d'instance (alias.0 → alias) après la sélection.",
44
+ "Pick an adapter instance (e.g. 0_userdata.0, alias.0). The path stays editable — remove the instance number (alias.0 → alias) to scan all instances.": "Choisissez une instance d'adaptateur (par exemple 0_userdata.0, alias.0). Le chemin reste modifiable — supprimez le numéro d'instance (alias.0 → alias) pour analyser toutes les instances.",
45
+ "Pick an adapter instance or subfolder (e.g. 0_userdata.0, alias.0). The path stays editable — remove the instance number (alias.0 → alias) to scan all instances.": "Choisissez une instance ou un sous-dossier d'adaptateur (par exemple 0_userdata.0, alias.0). Le chemin reste modifiable — supprimez le numéro d'instance (alias.0 → alias) pour analyser toutes les instances.",
46
+ "Pick an individual datapoint to exclude it. To exclude an entire folder, type the folder path directly (e.g. 0_userdata.0.config).": "Choisissez un point de données individuel pour l'exclure. Pour exclure un dossier entier, saisissez directement le chemin du dossier (par exemple 0_userdata.0.config).",
31
47
  "Purpose": "But",
32
48
  "Scan Paths": "Chemins d'analyse",
33
49
  "Scan all objects (complete)": "Scanner tous les objets (terminé)",
34
50
  "Scan interval (hours)": "Intervalle d'analyse (heures)",
51
+ "Scan path": "Chemin de numérisation",
52
+ "Select a datapoint or folder to exclude. Folders exclude all states beneath them.": "Sélectionnez un point de données ou un dossier à exclure. Les dossiers excluent tous les états situés en dessous.",
53
+ "Tip: The path remains editable after picking. Remove the instance number (e.g. alias.0 → alias) to scan all instances of an adapter.": "Astuce : Le chemin reste modifiable après le prélèvement. Supprimez le numéro d'instance (par exemple, alias.0 → alias) pour analyser toutes les instances d'un adaptateur.",
54
+ "Tip: The path stays editable after picking. Remove the instance number (e.g. alias.0 → alias) to scan all instances of an adapter.": "Astuce : Le chemin reste modifiable après le choix. Supprimez le numéro d'instance (par exemple, alias.0 → alias) pour analyser toutes les instances d'un adaptateur.",
55
+ "Tip: The path stays editable after picking. Remove the instance number (e.g. alias.0 → alias) to scan all instances. You can also copy any object ID from the Objects tab and paste it directly into the path field.": "Astuce : Le chemin reste modifiable après le choix. Supprimez le numéro d'instance (par exemple alias.0 → alias) pour analyser toutes les instances. Vous pouvez également copier n'importe quel ID d'objet depuis l'onglet Objets et le coller directement dans le champ Chemin.",
35
56
  "Usage in VIS Widgets": "Utilisation dans les widgets VIS",
57
+ "Use the object picker on the Scan Paths tab or type a path manually. The path stays editable after picking.\n\nTo scan all instances of an adapter, remove the instance number from the path (e.g. alias.0 → alias). This matches alias.0, alias.1, and so on.": "Utilisez le sélecteur d'objets dans l'onglet Chemins d'analyse ou saisissez un chemin manuellement. Le chemin reste modifiable après la sélection.\n\nPour analyser toutes les instances d'un adaptateur, supprimez le numéro d'instance du chemin (par exemple alias.0 → alias). Cela correspond à alias.0, alias.1, etc.",
58
+ "Use the object picker on the Scan Paths tab or type a path manually. The path stays editable after picking.\nTo scan all instances of an adapter, remove the instance number from the path (e.g. alias.0 → alias). This matches alias.0, alias.1, and so on.": "Utilisez le sélecteur d'objets dans l'onglet Chemins d'analyse ou saisissez un chemin manuellement. Le chemin reste modifiable après la sélection.\n\nPour analyser toutes les instances d'un adaptateur, supprimez le numéro d'instance du chemin (par exemple alias.0 → alias). Cela correspond à alias.0, alias.1, etc.",
36
59
  "When enabled, all configured paths will be scanned automatically at the specified interval": "Lorsqu'il est activé, tous les chemins configurés seront analysés automatiquement à l'intervalle spécifié",
60
+ "e.g. 0_userdata.0 or alias": "par ex. 0_userdata.0 ou alias",
61
+ "help_json_fields": "<table style=\"width:100%;border-collapse:collapse;font-size:0.875rem\"><thead><tr style=\"border-bottom:1px solid #546e7a\"><th style=\"text-align:left;padding:8px 6px;width:6%\">#</th><th style=\"text-align:left;padding:8px 6px;width:14%\">Clé</th><th style=\"text-align:left;padding:8px 6px;width:40%\">Description</th><th style=\"text-align:left;padding:8px 6px\">Objectif</th></tr></thead><tbody><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">01</td><td style=\"padding:6px\"><code>id</code></td><td style=\"padding:6px\">Chemin complet du point de données</td><td style=\"padding:6px\">Identification unique</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">02</td><td style=\"padding:6px\"><code>name</code></td><td style=\"padding:6px\">common.name ou dernière partie de l'ID</td><td style=\"padding:6px\">Nom convivial</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">03</td><td style=\"padding:6px\"><code>last_ts</code></td><td style=\"padding:6px\">Horodatage Unix (ms) ou null</td><td style=\"padding:6px\">Tri en arrière-plan</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">04</td><td style=\"padding:6px\"><code>last_ts_iso</code></td><td style=\"padding:6px\">Chaîne de date formatée</td><td style=\"padding:6px\">Affichage dans le tableau</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">05</td><td style=\"padding:6px\"><code>value</code></td><td style=\"padding:6px\">Valeur actuelle du point de données</td><td style=\"padding:6px\">Vérification finale avant suppression</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">06</td><td style=\"padding:6px\"><code>statut</code></td><td style=\"padding:6px\">actif, mort, périmé, indéfini, orphelin</td><td style=\"padding:6px\">Classification (Anglais)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">07</td><td style=\"padding:6px\"><code>status_de</code></td><td style=\"padding:6px\">actif, inactif, activé, indéfini, verwaist</td><td style=\"padding:6px\">Classification (allemand)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">08</td><td style=\"padding:6px\"><code>issue</code></td><td style=\"padding:6px\">mort, périmé, orphelin_alias ou nul</td><td style=\"padding:6px\">Critère de filtre (null = OK)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">09</td><td style=\"padding:6px\"><code>issue_de</code></td><td style=\"padding:6px\">inaktiv, veraltet, verwaistes Alias, ou null</td><td style=\"padding:6px\">Critère de filtre (allemand)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">10</td><td style=\"padding:6px\"><code>size</code></td><td style=\"padding:6px\">JSON.stringify(val).length</td><td style=\"padding:6px\">Trouver les porcs de stockage</td></tr></tbody></table>",
62
+ "help_readme": "<b>Pour une documentation complète, cliquez ici ci-dessous :</b><br><br>• <a href=\"https://github.com/inventwo/ioBroker.tidy/blob/main/README.md\">Documentation de l'adaptateur</a>",
63
+ "paypal_donate": "Si vous souhaitez nous soutenir.",
37
64
  "tidy adapter settings": "Paramètres de l'adaptateur pour ranger"
38
65
  }
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "Automatic Scanning": "Scansione automatica",
3
3
  "Check alias targets": "Controlla le destinazioni alias",
4
- "Configure which paths to scan for unused datapoints. Each path will get its own result state with a JSON table.": "Configura quali percorsi scansionare per i punti dati inutilizzati. Ogni percorso otterrà il proprio stato di risultato con una tabella JSON.",
4
+ "Comment (optional)": "Commento (facoltativo)",
5
+ "Configure which paths to scan for unused datapoints. Use the object picker or type a path manually. Each path will get its own result state with a JSON table.": "Configura quali percorsi scansionare per i punti dati inutilizzati. Utilizzare il selettore oggetti o digitare manualmente un percorso. Ogni percorso otterrà il proprio stato di risultato con una tabella JSON.",
6
+ "Datapoints listed on the Exceptions tab are omitted from all scan results and statistics. Use this for configuration values that rarely change but should not appear as dead or stale.\n\nPick a single state to exclude one datapoint, or pick a folder/channel to exclude an entire subtree.\n\nEach scan channel provides exceptionCount showing how many datapoints were excluded during the last scan (0 if none).": "I punti dati elencati nella scheda Eccezioni vengono omessi da tutti i risultati e le statistiche della scansione. Usalo per valori di configurazione che cambiano raramente ma che non dovrebbero apparire come obsoleti o obsoleti.\n\nScegli un singolo stato per escludere un punto dati oppure scegli una cartella/canale per escludere un intero sottoalbero.\n\nOgni canale di scansione fornisce un conteggio delle eccezioni che mostra quanti punti dati sono stati esclusi durante l'ultima scansione (0 se nessuno).",
7
+ "Datapoints listed on the Exceptions tab are omitted from all scan results and statistics. Use this for configuration values that rarely change but should not appear as dead or stale.\n\nUse the picker to select individual datapoints (states). To exclude an entire folder or subtree, type the path directly into the field (e.g. 0_userdata.0.config).\n\nEach scan channel provides exceptionCount showing how many datapoints were excluded during the last scan (0 if none).": "I punti dati elencati nella scheda Eccezioni vengono omessi da tutti i risultati e le statistiche della scansione. Usalo per valori di configurazione che cambiano raramente ma che non dovrebbero apparire come obsoleti o obsoleti.\n\nUtilizza il selettore per selezionare singoli punti dati (stati). Per escludere un'intera cartella o un sottoalbero, digitare il percorso direttamente nel campo (ad esempio 0_userdata.0.config).\n\nOgni canale di scansione fornisce un conteggio delle eccezioni che mostra quanti punti dati sono stati esclusi durante l'ultima scansione (0 se nessuno).",
5
8
  "Datapoints not updated for this many days are marked as 'dead'": "I punti dati non aggiornati per questo numero di giorni sono contrassegnati come \"morti\"",
6
9
  "Datapoints not updated for this many days are marked as 'stale'": "I punti dati non aggiornati per questo numero di giorni sono contrassegnati come \"obsoleti\"",
7
10
  "Days until 'dead' (critical)": "Giorni fino alla \"morte\" (critica)",
@@ -11,28 +14,52 @@
11
14
  "Each scan result contains a JSON array with the following fields per datapoint:": "Ogni risultato della scansione contiene un array JSON con i seguenti 10 campi per punto dati:",
12
15
  "Enable automatic scans": "Abilita le scansioni automatiche",
13
16
  "Enabled": "Abilitato",
14
- "Enter the full path, e.g. 0_userdata.0. Folders (type: folder) must be entered manually. The instance number is optional.": "Inserisci il percorso completo, ad es. 0_datiutente.0. Le cartelle (tipo: cartella) devono essere inserite manualmente. Il numero di istanza è facoltativo.",
17
+ "Enter scan paths on the Scan Paths tab or copy IDs from the Objects tab.\n\nTo scan all instances of an adapter, remove the instance number from the path (e.g. alias.0 alias). This matches alias.0, alias.1, and so on.": "Immettere i percorsi di scansione nella scheda Percorsi di scansione o copiare gli ID dalla scheda Oggetti.\n\nPer scansionare tutte le istanze di un adattatore, rimuovere il numero di istanza dal percorso (ad esempio alias.0 → alias). Corrisponde a alias.0, alias.1 e così via.",
18
+ "Enter the scan path (e.g. 0_userdata.0, alias, javascript.0). Copy from the Objects tab if needed. Remove the instance number (alias.0 → alias) to scan all instances.": "Inserisci il percorso di scansione (ad esempio 0_userdata.0, alias, javascript.0). Copia dalla scheda Oggetti, se necessario. Rimuovere il numero dell'istanza (alias.0 → alias) per scansionare tutte le istanze.",
19
+ "Exceptions": "Eccezioni",
20
+ "Exclude datapoints from scan results that are intentionally static or should be ignored (e.g. configuration values that rarely change). Select a single datapoint or a folder to exclude everything beneath it.": "Escludere i punti dati dai risultati della scansione che sono intenzionalmente statici o che dovrebbero essere ignorati (ad esempio valori di configurazione che cambiano raramente). Seleziona un singolo punto dati o una cartella per escludere tutto ciò che è al di sotto di esso.",
21
+ "Exclude datapoints from scan results that are intentionally static or should be ignored. Use the picker to select individual datapoints. To exclude an entire folder, type the path manually (e.g. 0_userdata.0.config).": "Escludere i punti dati dai risultati della scansione che sono intenzionalmente statici o che dovrebbero essere ignorati. Utilizza il selettore per selezionare singoli punti dati. Per escludere un'intera cartella, digitare manualmente il percorso (es. 0_userdata.0.config).",
22
+ "Excluded datapoints": "Punti dati esclusi",
15
23
  "Field": "Chiave",
16
- "Field descriptions": "Descrizioni dei campi",
17
- "Field descriptions (English):": "Descrizioni dei campi (inglese):",
18
- "For German tables: Use status_de and issue_de columns\nFor English tables: Use status and issue columns\n\nFilter by 'issue != null' to show only problematic datapoints.": "Per le tabelle tedesche: utilizzare le colonne status_de e issue_de\nPer le tabelle in inglese: utilizzare le colonne di stato e di emissione\n\nFiltra per \"problema! = null\" per mostrare solo i punti dati problematici.",
24
+ "For German tables: Use status_de and issue_de columns\nFor English tables: Use status and issue columns\n\nFilter by 'issue != null' to show only problematic datapoints.": "Per le tabelle tedesche: utilizzare le colonne status_de e issue_de.\nPer le tabelle in inglese: utilizzare le colonne di stato e di emissione\n\nFiltra per \"problema! = null\" per mostrare solo i punti dati problematici.",
19
25
  "For alias.* paths: Check if target datapoints exist (ghost detection)": "Per percorsi alias.*: controlla se esistono punti dati di destinazione (rilevamento fantasma)",
20
26
  "General Settings": "Impostazioni generali",
21
27
  "Help & Documentation": "Aiuto e documentazione",
22
28
  "How often the automatic scan should run (minimum 1 hour)": "La frequenza con cui deve essere eseguita la scansione automatica (minimo 1 ora)",
23
29
  "If enabled, the adapter will scan the entire object tree and store the result in a separate 'complete' result channel.": "Se abilitato, l'adattatore eseguirà la scansione dell'intero albero degli oggetti e memorizzerà il risultato in un canale di risultati \"completo\" separato.",
24
30
  "JSON Table Field Description": "Descrizione campo tabella JSON",
31
+ "Name": "Nome",
25
32
  "Name (for result state)": "Nome (per lo stato del risultato)",
26
33
  "Name (for result state, optional)": "Nome (per lo stato del risultato, facoltativo)",
34
+ "Object": "Oggetto",
35
+ "Optional note, e.g. alarm clock radio station": "Nota facoltativa, ad es. stazione radio sveglia",
27
36
  "Optional. If empty, the path will be used as name.": "Opzionale. Se vuoto, il percorso verrà utilizzato come nome.",
28
- "Path (e.g. 0_userdata.0 or alias.0 - The instance number is optional.)": "Percorso (ad esempio 0_userdata.0 o alias.0 - Il numero di istanza è facoltativo.)",
29
37
  "Path Configuration": "Configurazione del percorso",
30
38
  "Paths to scan": "Percorsi da scansionare",
39
+ "Pick a folder in the object tree to exclude an entire subtree, or type a single state ID manually (e.g. 0_userdata.0.radio.station).": "Scegli una cartella nell'albero degli oggetti per escludere un intero sottoalbero o digita manualmente un singolo ID di stato (ad esempio 0_userdata.0.radio.station).",
40
+ "Pick a folder in the object tree, or type a path manually (e.g. 0_userdata.0). Remove the instance number (alias.0 → alias) to scan all instances.": "Scegli una cartella nell'albero degli oggetti o digita manualmente un percorso (ad esempio 0_userdata.0). Rimuovere il numero dell'istanza (alias.0 → alias) per scansionare tutte le istanze.",
41
+ "Pick a folder/channel to exclude an entire subtree. To exclude a single state, type its ID directly into the field (e.g. 0_userdata.0.radio.station).": "Scegli una cartella/canale per escludere un intero sottoalbero. Per escludere un singolo stato digitare il suo ID direttamente nel campo (es. 0_userdata.0.radio.station).",
42
+ "Pick a path from the object tree or type manually. Remove the instance number (e.g. alias.0 → alias) to scan all instances of an adapter.": "Scegli un percorso dall'albero degli oggetti o digitalo manualmente. Rimuovere il numero di istanza (ad esempio alias.0 → alias) per scansionare tutte le istanze di un adattatore.",
43
+ "Pick an adapter instance (e.g. 0_userdata.0, alias.0). The path stays editable — append a subfolder or remove the instance number (alias.0 → alias) after picking.": "Scegli un'istanza dell'adattatore (ad esempio 0_userdata.0, alias.0). Il percorso rimane modificabile: aggiungi una sottocartella o rimuovi il numero di istanza (alias.0 → alias) dopo la selezione.",
44
+ "Pick an adapter instance (e.g. 0_userdata.0, alias.0). The path stays editable — remove the instance number (alias.0 → alias) to scan all instances.": "Scegli un'istanza dell'adattatore (ad esempio 0_userdata.0, alias.0). Il percorso rimane modificabile: rimuovi il numero dell'istanza (alias.0 → alias) per scansionare tutte le istanze.",
45
+ "Pick an adapter instance or subfolder (e.g. 0_userdata.0, alias.0). The path stays editable — remove the instance number (alias.0 → alias) to scan all instances.": "Scegli un'istanza o una sottocartella dell'adattatore (ad esempio 0_userdata.0, alias.0). Il percorso rimane modificabile: rimuovi il numero dell'istanza (alias.0 → alias) per scansionare tutte le istanze.",
46
+ "Pick an individual datapoint to exclude it. To exclude an entire folder, type the folder path directly (e.g. 0_userdata.0.config).": "Scegli un singolo punto dati per escluderlo. Per escludere un'intera cartella, digitare direttamente il percorso della cartella (es. 0_userdata.0.config).",
31
47
  "Purpose": "Scopo",
32
48
  "Scan Paths": "Percorsi di scansione",
33
49
  "Scan all objects (complete)": "Scansiona tutti gli oggetti (completo)",
34
50
  "Scan interval (hours)": "Intervallo di scansione (ore)",
51
+ "Scan path": "Percorso di scansione",
52
+ "Select a datapoint or folder to exclude. Folders exclude all states beneath them.": "Seleziona un punto dati o una cartella da escludere. Le cartelle escludono tutti gli stati sottostanti.",
53
+ "Tip: The path remains editable after picking. Remove the instance number (e.g. alias.0 → alias) to scan all instances of an adapter.": "Suggerimento: il percorso rimane modificabile dopo la selezione. Rimuovere il numero di istanza (ad esempio alias.0 → alias) per scansionare tutte le istanze di un adattatore.",
54
+ "Tip: The path stays editable after picking. Remove the instance number (e.g. alias.0 → alias) to scan all instances of an adapter.": "Suggerimento: il percorso rimane modificabile dopo la selezione. Rimuovere il numero di istanza (ad esempio alias.0 → alias) per scansionare tutte le istanze di un adattatore.",
55
+ "Tip: The path stays editable after picking. Remove the instance number (e.g. alias.0 → alias) to scan all instances. You can also copy any object ID from the Objects tab and paste it directly into the path field.": "Suggerimento: il percorso rimane modificabile dopo la selezione. Rimuovere il numero dell'istanza (ad esempio alias.0 → alias) per scansionare tutte le istanze. Puoi anche copiare qualsiasi ID oggetto dalla scheda Oggetti e incollarlo direttamente nel campo del percorso.",
35
56
  "Usage in VIS Widgets": "Utilizzo nei widget VIS",
57
+ "Use the object picker on the Scan Paths tab or type a path manually. The path stays editable after picking.\n\nTo scan all instances of an adapter, remove the instance number from the path (e.g. alias.0 → alias). This matches alias.0, alias.1, and so on.": "Utilizzare il selettore oggetti nella scheda Percorsi di scansione o digitare un percorso manualmente. Il percorso rimane modificabile dopo la selezione.\n\nPer scansionare tutte le istanze di un adattatore, rimuovere il numero di istanza dal percorso (ad esempio alias.0 → alias). Corrisponde a alias.0, alias.1 e così via.",
58
+ "Use the object picker on the Scan Paths tab or type a path manually. The path stays editable after picking.\nTo scan all instances of an adapter, remove the instance number from the path (e.g. alias.0 → alias). This matches alias.0, alias.1, and so on.": "Utilizzare il selettore oggetti nella scheda Percorsi di scansione o digitare un percorso manualmente. Il percorso rimane modificabile dopo la selezione.\n\nPer scansionare tutte le istanze di un adattatore, rimuovere il numero di istanza dal percorso (ad esempio alias.0 → alias). Corrisponde a alias.0, alias.1 e così via.",
36
59
  "When enabled, all configured paths will be scanned automatically at the specified interval": "Se abilitato, tutti i percorsi configurati verranno scansionati automaticamente all'intervallo specificato",
60
+ "e.g. 0_userdata.0 or alias": "per esempio. 0_userdata.0 o alias",
61
+ "help_json_fields": "<table style=\"width:100%;border-collapse:collapse;font-size:0.875rem\"><thead><tr style=\"border-bottom:1px solid #546e7a\"><th style=\"text-align:left;padding:8px 6px;width:6%\">#</th><th style=\"text-align:left;padding:8px 6px;width:14%\">Chiave</th><th style=\"text-align:left;padding:8px 6px;width:40%\">Descrizione</th><th style=\"text-align:left;padding:8px 6px\">Scopo</th></tr></thead><tbody><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">01</td><td style=\"padding:6px\"><code>id</code></td><td style=\"padding:6px\">Percorso completo del punto dati</td><td style=\"padding:6px\">Identificazione univoca</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">02</td><td style=\"padding:6px\"><code>nome</code></td><td style=\"padding:6px\">nome.comune o ultima parte dell'ID</td><td style=\"padding:6px\">Nome descrittivo</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">03</td><td style=\"padding:6px\"><code>last_ts</code></td><td style=\"padding:6px\">Timestamp Unix (ms) o null</td><td style=\"padding:6px\">Ordinamento in background</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">04</td><td style=\"padding:6px\"><code>last_ts_iso</code></td><td style=\"padding:6px\">Stringa della data formattata</td><td style=\"padding:6px\">Visualizza nella tabella</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">05</td><td style=\"padding:6px\"><code>value</code></td><td style=\"padding:6px\">Valore del punto dati corrente</td><td style=\"padding:6px\">Controllo finale prima dell'eliminazione</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">06</td><td style=\"padding:6px\"><code>status</code></td><td style=\"padding:6px\">attivo, morto, obsoleto, non definito, orfano</td><td style=\"padding:6px\">Classificazione (Inglese)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">07</td><td style=\"padding:6px\"><code>status_de</code></td><td style=\"padding:6px\">attivo, inattivo, veroltet, indefinito, verwaist</td><td style=\"padding:6px\">Classificazione (tedesco)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">08</td><td style=\"padding:6px\"><code>problema</code></td><td style=\"padding:6px\">morto, stantio, orphaned_alias o null</td><td style=\"padding:6px\">Criterio di filtro (null = OK)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">09</td><td style=\"padding:6px\"><code>issue_de</code></td><td style=\"padding:6px\">inaktiv, veraltet, verwaistes Alias o null</td><td style=\"padding:6px\">Criterio di filtro (tedesco)</td></tr><tr style=\"border-bottom:1px solid rgba(84,110,122,0.35)\"><td style=\"padding:6px\">10</td><td style=\"padding:6px\"><code>dimensione</code></td><td style=\"padding:6px\">JSON.stringify(val).length</td><td style=\"padding:6px\">Trova i maiali di archiviazione</td></tr></tbody></table>",
62
+ "help_readme": "<b>Per la documentazione completa, fare clic qui sotto:</b><br><br>• <a href=\"https://github.com/inventtwo/ioBroker.tidy/blob/main/README.md\">Documentazione dell'adattatore</a>",
63
+ "paypal_donate": "Se vuoi sostenerci.",
37
64
  "tidy adapter settings": "Impostazioni dell'adattatore per ordine"
38
65
  }