iobroker.tidy 0.0.1

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 skvarel <skvarel@inventwo.com>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,176 @@
1
+ ![Logo](admin/tidy.svg)
2
+
3
+ ## tidy adapter for ioBroker
4
+
5
+ ![Number of Installations](https://iobroker.live/badges/tidy-installed.svg)
6
+ ![Current version in stable repository](https://iobroker.live/badges/tidy-stable.svg)
7
+ [![NPM Version](https://nodei.co/npm/iobroker.tidy.svg?style=shields&data=v,u,d&color=orange)](https://www.npmjs.com/package/iobroker.tidy)
8
+ [![Downloads](https://img.shields.io/npm/dm/iobroker.tidy.svg)](https://www.npmjs.com/package/iobroker.tidy)
9
+
10
+ [![Paypal Donation](https://img.shields.io/badge/paypal-donate%20|%20spenden-green.svg)](https://www.paypal.com/donate/?hosted_button_id=7W6M3TFZ4W9LW)
11
+
12
+ ## What this adapter does
13
+
14
+ The **Tidy** adapter helps to find unused objects and states to clean up your system. After years of using ioBroker, your system may accumulate "dead" datapoints from deleted scripts, removed adapters, or abandoned configurations. This adapter helps you identify and clean up such datapoints to keep your system tidy and performant.
15
+
16
+ ## Features
17
+
18
+ - **📊 Path-based scanning**: Configure multiple paths to scan (e.g., `0_userdata.0`, `alias.0`)
19
+ - **🔍 Smart detection**: Identifies different types of problematic datapoints:
20
+ - **Dead**: Never updated or extremely old (configurable threshold, default: 365 days)
21
+ - **Stale**: Not updated recently (configurable threshold, default: 90 days)
22
+ - **Orphaned aliases**: Aliases pointing to non-existent target datapoints
23
+ - **Undefined**: Datapoints that were never written to since system start
24
+ - **⚙️ Flexible configuration**:
25
+ - Configurable age thresholds for "stale" and "dead" detection
26
+ - Optional automatic scanning at configurable intervals (hourly)
27
+ - Enable/disable individual scan paths
28
+ - **🎯 Manual triggers**: Each configured path gets a trigger button to run scans on demand
29
+ - **📋 JSON table output**: Results are provided as JSON arrays, perfect for table widgets in VIS
30
+ - **📈 Statistics**: Automatic counters for total, dead, stale, and orphaned datapoints
31
+
32
+ ## Configuration
33
+
34
+ ### General Settings
35
+
36
+ - **Enable automatic scans**: When enabled, all configured paths are scanned automatically
37
+ - **Scan interval**: How often automatic scans should run (in hours, minimum 1)
38
+ - **Days until 'stale'**: Datapoints not updated for this many days are marked as stale (warning)
39
+ - **Days until 'dead'**: Datapoints not updated for this many days are marked as dead (critical)
40
+
41
+ ### Scan Paths
42
+
43
+ Configure one or more paths to monitor:
44
+
45
+ - **Enabled**: Enable/disable this scan path
46
+ - **Path**: The root path to scan (e.g., `0_userdata.0`, `alias.0`, `javascript.0`)
47
+ - **Name**: A friendly name for this path (used for result state naming)
48
+ - **Check alias targets**: For `alias.*` paths, check if target datapoints still exist (ghost detection)
49
+
50
+ ## Data Points
51
+
52
+ For each configured path (e.g., "userdata"), the adapter creates:
53
+
54
+ - **`tidy.0.userdata.trigger`** (button): Click to manually start a scan
55
+ - **`tidy.0.userdata.result`** (json): Complete scan results as JSON table
56
+ - **`tidy.0.userdata.lastScan`** (timestamp): When the last scan was performed
57
+ - **`tidy.0.userdata.count`** (number): Total datapoints found
58
+ - **`tidy.0.userdata.deadCount`** (number): Number of dead datapoints
59
+ - **`tidy.0.userdata.staleCount`** (number): Number of stale datapoints
60
+ - **`tidy.0.userdata.orphanedCount`** (number): Number of orphaned aliases
61
+
62
+ ### JSON Result Structure
63
+
64
+ The `result` state contains a JSON array with the following fields for each datapoint:
65
+
66
+ ```json
67
+ [
68
+ {
69
+ "id": "0_userdata.0.hallway.light_auto",
70
+ "name": "Hallway Light Automation",
71
+ "last_ts": 1712856000000,
72
+ "last_ts_iso": "4/11/2026, 6:00:00 PM",
73
+ "value": true,
74
+ "status": "active",
75
+ "issue": null,
76
+ "size": 4
77
+ },
78
+ {
79
+ "id": "0_userdata.0.test.old_value",
80
+ "name": "Test Datapoint",
81
+ "last_ts": null,
82
+ "last_ts_iso": "undefined",
83
+ "value": 15,
84
+ "status": "undefined",
85
+ "issue": "dead",
86
+ "size": 2
87
+ }
88
+ ]
89
+ ```
90
+
91
+ **Field descriptions:**
92
+
93
+ | Field | Description | Purpose |
94
+ |-------|-------------|---------|
95
+ | `id` | Full datapoint path | Unique identification |
96
+ | `name` | common.name or last part of ID | User-friendly name |
97
+ | `last_ts` | Unix timestamp (ms) or null | Sorting in background |
98
+ | `last_ts_iso` | Formatted date string | Display in table |
99
+ | `value` | Current datapoint value | Final check before deletion |
100
+ | `status` | `active`, `dead`, `stale`, `undefined`, `orphaned` | Classification (English) |
101
+ | `status_de` | `aktiv`, `inaktiv`, `veraltet`, `undefiniert`, `verwaist` | Classification (German) |
102
+ | `issue` | `dead`, `stale`, `orphaned_alias`, or `null` | Filter criterion (null = OK) |
103
+ | `issue_de` | `inaktiv`, `veraltet`, `verwaistes Alias`, or `null` | Filter criterion (German) |
104
+ | `size` | `JSON.stringify(val).length` | Finds "storage hogs" |
105
+
106
+ ## Usage Examples
107
+
108
+ ### Basic Setup
109
+
110
+ 1. Install and configure the adapter
111
+ 2. Add a path to scan (e.g., `0_userdata.0`)
112
+ 3. Give it a name (e.g., "userdata")
113
+ 4. Save configuration
114
+ 5. The adapter will immediately perform an initial scan
115
+ 6. View results in `tidy.0.userdata.result`
116
+
117
+ ### VIS Integration
118
+
119
+ Use the JSON result with a table widget to display and sort your datapoints:
120
+
121
+ 1. Create a table widget in VIS (e.g., inventwo Table Widget)
122
+ 2. Bind it to `tidy.0.userdata.result`
123
+ 3. Configure columns:
124
+ - For **German** tables: `id`, `name`, `last_ts_iso`, `status_de`, `issue_de`
125
+ - For **English** tables: `id`, `name`, `last_ts_iso`, `status`, `issue`
126
+ 4. Sort by `last_ts` (oldest first) to find the "deadest" datapoints
127
+ 5. Filter by `issue != null` to show only problematic datapoints
128
+
129
+ ### Automatic Maintenance
130
+
131
+ 1. Enable "automatic scans" in settings
132
+ 2. Set interval to 24 hours (once daily)
133
+ 3. Monitor `deadCount` and `staleCount` statistics
134
+ 4. Review results weekly to identify cleanup candidates
135
+
136
+ ## Support
137
+
138
+ If you like our work and would like to support us, we appreciate any donation.
139
+ (This link leads to our PayPal account and is not affiliated with ioBroker.)
140
+
141
+ [![Donate](img/support.png)](https://www.paypal.com/donate?hosted_button_id=7W6M3TFZ4W9LW)
142
+
143
+ ## Changelog
144
+ <!--
145
+ ### **WORK IN PROGRESS**
146
+ -->
147
+
148
+ ### 0.0.1 (2026-04-14)
149
+ - (skvarel) initial release
150
+
151
+ ## Older changes
152
+ - [CHANGELOG_OLD.md](CHANGELOG_OLD.md)
153
+
154
+ ## License
155
+
156
+ MIT License
157
+
158
+ Copyright (c) 2026 skvarel <skvarel@inventwo.com>
159
+
160
+ Permission is hereby granted, free of charge, to any person obtaining a copy
161
+ of this software and associated documentation files (the "Software"), to deal
162
+ in the Software without restriction, including without limitation the rights
163
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
164
+ copies of the Software, and to permit persons to whom the Software is
165
+ furnished to do so, subject to the following conditions:
166
+
167
+ The above copyright notice and this permission notice shall be included in all
168
+ copies or substantial portions of the Software.
169
+
170
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
171
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
172
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
173
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
174
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
175
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
176
+ SOFTWARE.
@@ -0,0 +1,36 @@
1
+ {
2
+ "Automatic Scanning": "Automatisches Scannen",
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.",
5
+ "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
+ "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
+ "Days until 'dead' (critical)": "Tage bis 'inaktiv' (kritisch)",
8
+ "Days until 'stale' (warning)": "Tage bis 'veraltet' (Warnung)",
9
+ "Description": "Beschreibung",
10
+ "Detection Thresholds": "Erkennungsschwellen",
11
+ "Each scan result contains a JSON array with the following 10 fields per datapoint:": "Jedes Scan-Ergebnis enthält ein JSON-Array mit folgenden 10 Feldern pro Datenpunkt:",
12
+ "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:",
13
+ "Enable automatic scans": "Automatisches Scannen aktivieren",
14
+ "Enabled": "Aktiviert",
15
+ "Feldbeschreibungen (Deutsch):": "Feldbeschreibungen (Deutsch):",
16
+ "Field": "Schlüssel",
17
+ "Field descriptions": "Feldbeschreibungen",
18
+ "Field descriptions (English):": "Feldbeschreibungen (Englisch):",
19
+ "Field descriptions:": "Feldbeschreibungen:",
20
+ "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.",
21
+ "For alias.* paths: Check if target datapoints exist (ghost detection)": "Für alias.*-Pfade: Prüfen, ob Ziel-Datenpunkte existieren (Geister-Erkennung)",
22
+ "General Settings": "Allgemeine Einstellungen",
23
+ "Help & Documentation": "Hilfe & Dokumentation",
24
+ "How often the automatic scan should run (minimum 1 hour)": "Wie oft der automatische Scan ausgeführt werden soll (mindestens 1 Stunde)",
25
+ "JSON Table Field Description": "JSON-Tabellen-Feldbeschreibung",
26
+ "Name (for result state)": "Name (für Ergebnis-Datenpunkt)",
27
+ "Path (e.g. 0_userdata.0 or alias.0)": "Pfad (z.B. 0_userdata.0 oder alias.0)",
28
+ "Path Configuration": "Pfad-Konfiguration",
29
+ "Paths to scan": "Zu scannende Pfade",
30
+ "Purpose": "Zweck",
31
+ "Scan Paths": "Scan-Pfade",
32
+ "Scan interval (hours)": "Scan-Intervall (Stunden)",
33
+ "Usage in VIS Widgets": "Verwendung in VIS-Widgets",
34
+ "When enabled, all configured paths will be scanned automatically at the specified interval": "Wenn aktiviert, werden alle konfigurierten Pfade automatisch im angegebenen Intervall gescannt",
35
+ "tidy adapter settings": "Adaptereinstellungen für tidy"
36
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "Automatic Scanning": "Automatic Scanning",
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.",
5
+ "Days until 'dead' (critical)": "Days until 'dead' (critical)",
6
+ "Days until 'stale' (warning)": "Days until 'stale' (warning)",
7
+ "Datapoints not updated for this many days are marked as 'dead'": "Datapoints not updated for this many days are marked as 'dead'",
8
+ "Datapoints not updated for this many days are marked as 'stale'": "Datapoints not updated for this many days are marked as 'stale'",
9
+ "Detection Thresholds": "Detection Thresholds",
10
+ "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:",
11
+ "Enable automatic scans": "Enable automatic scans",
12
+ "Enabled": "Enabled",
13
+ "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.",
14
+ "For alias.* paths: Check if target datapoints exist (ghost detection)": "For alias.* paths: Check if target datapoints exist (ghost detection)",
15
+ "General Settings": "General Settings",
16
+ "Help & Documentation": "Help & Documentation",
17
+ "How often the automatic scan should run (minimum 1 hour)": "How often the automatic scan should run (minimum 1 hour)",
18
+ "JSON Table Field Description": "JSON Table Field Description",
19
+ "Name (for result state)": "Name (for result state)",
20
+ "Path (e.g. 0_userdata.0 or alias.0)": "Path (e.g. 0_userdata.0 or alias.0)",
21
+ "Path Configuration": "Path Configuration",
22
+ "Paths to scan": "Paths to scan",
23
+ "Scan interval (hours)": "Scan interval (hours)",
24
+ "Scan Paths": "Scan Paths",
25
+ "tidy adapter settings": "Adapter settings for tidy",
26
+ "Usage in VIS Widgets": "Usage in VIS Widgets",
27
+ "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",
28
+ "Field descriptions": "Field descriptions",
29
+ "Purpose": "Purpose",
30
+ "Field": "Schlüssel",
31
+ "Description": "Description"
32
+
33
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "1 - id\nFull datapoint path (unique identification)": "1 - identificación\nRuta completa del punto de datos (identificación única)",
3
+ "1 - id\nVollständiger Datenpunkt-Pfad (eindeutige Identifikation)": "1 - identificación\nRuta completa del punto de datos (identificación única)",
4
+ "10 - size\nJSON.stringify(val).length (finds storage hogs)": "10 - tamaño\nJSON.stringify(val).length (busca acaparadores de almacenamiento)",
5
+ "2 - name\ncommon.name or last part of ID (user-friendly name)": "2 - nombre\nnombre.común o última parte del ID (nombre fácil de usar)",
6
+ "3 - last_ts\nUnix timestamp in ms or null (for sorting)": "3 - últimos_ts\nMarca de tiempo de Unix en ms o nulo (para ordenar)",
7
+ "4 - last_ts_iso\nFormatted date string (for display in table)": "4 - último_ts_iso\nCadena de fecha formateada (para mostrar en la tabla)",
8
+ "5 - value\nCurrent datapoint value (final check before deletion)": "5 - valor\nValor actual del punto de datos (verificación final antes de la eliminación)",
9
+ "6 - status\nClassification in English: active, dead, stale, undefined, orphaned": "6 - estado\nClasificación en inglés: activo, muerto, obsoleto, indefinido, huérfano",
10
+ "7 - status_de\nClassification in German: aktiv, inaktiv, veraltet, undefiniert, verwaist": "7 - estado_de\nClasificación en alemán: aktiv, inaktiv, veraltet, undefiniert, verwaist",
11
+ "8 - issue\nProblem indicator (English): dead, stale, orphaned_alias, or null if OK": "8 - problema\nIndicador de problema (inglés): muerto, obsoleto, alias_huérfano o nulo si está bien",
12
+ "9 - issue_de\nProblem indicator (German): inaktiv, veraltet, verwaistes Alias, or null if OK": "9 - número_de\nIndicador de problema (alemán): inaktiv, veraltet, verwaistes Alias o nulo si está bien",
13
+ "Automatic Scanning": "Automatic Scanning",
14
+ "Check alias targets": "Check alias targets",
15
+ "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.",
16
+ "Datapoints not updated for this many days are marked as 'dead'": "Datapoints not updated for this many days are marked as 'dead'",
17
+ "Datapoints not updated for this many days are marked as 'stale'": "Datapoints not updated for this many days are marked as 'stale'",
18
+ "Days until 'dead' (critical)": "Days until 'dead' (critical)",
19
+ "Days until 'stale' (warning)": "Days until 'stale' (warning)",
20
+ "Description": "Descripción",
21
+ "Detection Thresholds": "Detection Thresholds",
22
+ "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 campos por punto de datos:",
23
+ "Each scan result contains a JSON array with the following fields per datapoint:\n\n• id - Full datapoint path (unique identification)\n• name - common.name or last part of ID (user-friendly name)\n• last_ts - Unix timestamp in ms or null (for sorting)\n• last_ts_iso - Formatted date string (for display)\n• value - Current datapoint value (final check before deletion)\n• status - active, dead, stale, undefined, orphaned (classification in English)\n• status_de - aktiv, inaktiv, veraltet, undefiniert, verwaist (classification in German)\n• issue - dead, stale, orphaned_alias, or null (filter criterion in English)\n• issue_de - inaktiv, veraltet, verwaistes Alias, or null (filter criterion in German)\n• size - JSON.stringify(val).length (finds storage hogs)": "Cada resultado del análisis contiene una matriz JSON con los siguientes campos por punto de datos:\n\n• id: ruta completa del punto de datos (identificación única)\n• nombre: nombre.común o última parte del ID (nombre fácil de usar)\n• last_ts: marca de tiempo de Unix en ms o nulo (para ordenar)\n• last_ts_iso: cadena de fecha formateada (para visualización)\n• valor: valor del punto de datos actual (verificación final antes de la eliminación)\n• estado: activo, muerto, obsoleto, indefinido, huérfano (clasificación en inglés)\n• status_de - aktiv, inaktiv, veraltet, undefiniert, verwaist (clasificación en alemán)\n• problema: muerto, obsoleto, alias_huérfano o nulo (criterio de filtro en inglés)\n• issues_de - inaktiv, veraltet, verwaistes Alias o null (criterio de filtrado en alemán)\n• tamaño - JSON.stringify(val).length (busca grandes cantidades de almacenamiento)",
24
+ "Enable automatic scans": "Enable automatic scans",
25
+ "Enabled": "Enabled",
26
+ "Feldbeschreibungen (Deutsch):": "Descripciones de campo (alemán):",
27
+ "Field": "Schlüssel",
28
+ "Field descriptions": "Descripciones de campo",
29
+ "Field descriptions (English):": "Descripciones de campo (inglés):",
30
+ "Field descriptions:": "Descripciones de campo:",
31
+ "For German tables, use the '_de' fields (status_de, issue_de) in your VIS widget column configuration. For English tables, use the regular fields (status, issue). Both field sets are always included in the JSON output.": "Para tablas alemanas, utilice los campos '_de' (status_de, issues_de) en la configuración de la columna del widget VIS. Para tablas en inglés, utilice los campos habituales (estado, problema). Ambos conjuntos de campos siempre se incluyen en la salida JSON.",
32
+ "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.",
33
+ "For alias.* paths: Check if target datapoints exist (ghost detection)": "For alias.* paths: Check if target datapoints exist (ghost detection)",
34
+ "General Settings": "General Settings",
35
+ "Help & Documentation": "Ayuda y documentación",
36
+ "How often the automatic scan should run (minimum 1 hour)": "How often the automatic scan should run (minimum 1 hour)",
37
+ "JSON Table Field Description": "Descripción del campo de la tabla JSON",
38
+ "Name (for result state)": "Name (for result state)",
39
+ "Path (e.g. 0_userdata.0 or alias.0)": "Path (e.g. 0_userdata.0 or alias.0)",
40
+ "Path Configuration": "Configuración de ruta",
41
+ "Paths to scan": "Paths to scan",
42
+ "Purpose": "Objetivo",
43
+ "Scan Paths": "Scan Paths",
44
+ "Scan interval (hours)": "Scan interval (hours)",
45
+ "Usage in VIS Widgets": "Uso en widgets de VIS",
46
+ "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",
47
+ "tidy adapter settings": "Adapter settings for tidy",
48
+ "• id\n Full datapoint path (unique identification)": "• identificación\n Ruta completa del punto de datos (identificación única)",
49
+ "• id - Full datapoint path\n• name - common.name or last part of ID\n• last_ts - Unix timestamp (ms) or null\n• last_ts_iso - Formatted date string\n• value - Current datapoint value": "• id: ruta completa del punto de datos\n• nombre: nombre.común o última parte del ID\n• last_ts: marca de tiempo Unix (ms) o nulo\n• last_ts_iso - Cadena de fecha formateada\n• valor: valor del punto de datos actual",
50
+ "• issue\n Problem indicator (English): dead, stale, orphaned_alias, or null if OK": "• problema\n Indicador de problema (inglés): muerto, obsoleto, alias_huérfano o nulo si está bien",
51
+ "• issue / issue_de - Problem indicator (null if OK)\n Values: dead/inaktiv, stale/veraltet, orphaned_alias/verwaistes Alias, or null": "• Issue / Issue_de - Indicador de problema (nulo si está bien)\n Valores: dead/inaktiv, stale/veraltet, orphaned_alias/verwaistes Alias o null",
52
+ "• issue_de\n Problem indicator (German): inaktiv, veraltet, verwaistes Alias, or null if OK": "• número_es\n Indicador de problema (alemán): inaktiv, veraltet, verwaistes Alias o nulo si está bien",
53
+ "• last_ts\n Unix timestamp in ms or null (for sorting)": "• últimos_ts\n Marca de tiempo de Unix en ms o nulo (para ordenar)",
54
+ "• last_ts_iso\n Formatted date string (for display in table)": "• last_ts_iso\n Cadena de fecha formateada (para mostrar en la tabla)",
55
+ "• name\n common.name or last part of ID (user-friendly name)": "• nombre\n nombre.común o última parte del ID (nombre fácil de usar)",
56
+ "• size\n JSON.stringify(val).length (finds storage hogs)": "• tamaño\n JSON.stringify(val).length (busca acaparadores de almacenamiento)",
57
+ "• size - JSON.stringify(val).length (finds storage hogs)": "• tamaño - JSON.stringify(val).length (busca grandes cantidades de almacenamiento)",
58
+ "• status\n Classification in English: active, dead, stale, undefined, orphaned": "• estado\n Clasificación en inglés: activo, muerto, obsoleto, indefinido, huérfano",
59
+ "• status / status_de - Classification (English / German)\n Values: active/aktiv, dead/inaktiv, stale/veraltet, undefined/undefiniert, orphaned/verwaist": "• status / status_de - Clasificación (inglés / alemán)\n Valores: activo/activo, muerto/inaktiv, obsoleto/veraltet, indefinido/indefinido, huérfano/verwaist",
60
+ "• status_de\n Classification in German: aktiv, inaktiv, veraltet, undefiniert, verwaist": "• estado_de\n Clasificación en alemán: aktiv, inaktiv, veraltet, undefiniert, verwaist",
61
+ "• value\n Current datapoint value (final check before deletion)": "• valor\n Valor actual del punto de datos (verificación final antes de la eliminación)"
62
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "1 - id\nFull datapoint path (unique identification)": "1 - identifiant\nChemin complet du point de données (identification unique)",
3
+ "1 - id\nVollständiger Datenpunkt-Pfad (eindeutige Identifikation)": "1 - identifiant\nChemin complet du point de données (identification unique)",
4
+ "10 - size\nJSON.stringify(val).length (finds storage hogs)": "10 - taille\nJSON.stringify(val).length (trouve les porcs de stockage)",
5
+ "2 - name\ncommon.name or last part of ID (user-friendly name)": "2 - nom\ncommon.name ou dernière partie de l'ID (nom convivial)",
6
+ "3 - last_ts\nUnix timestamp in ms or null (for sorting)": "3 - derniers_ts\nHorodatage Unix en ms ou null (pour le tri)",
7
+ "4 - last_ts_iso\nFormatted date string (for display in table)": "4 - last_ts_iso\nChaîne de date formatée (pour affichage dans le tableau)",
8
+ "5 - value\nCurrent datapoint value (final check before deletion)": "5 - valeur\nValeur actuelle du point de données (vérification finale avant suppression)",
9
+ "6 - status\nClassification in English: active, dead, stale, undefined, orphaned": "6 - statut\nClassification en anglais : actif, mort, périmé, indéfini, orphelin",
10
+ "7 - status_de\nClassification in German: aktiv, inaktiv, veraltet, undefiniert, verwaist": "7 - status_de\nClassification en allemand : aktiv, inaktiv, veraltet, undefiniert, verwaist",
11
+ "8 - issue\nProblem indicator (English): dead, stale, orphaned_alias, or null if OK": "8 - problème\nIndicateur de problème (anglais) : mort, obsolète, orphelin_alias ou null si OK",
12
+ "9 - issue_de\nProblem indicator (German): inaktiv, veraltet, verwaistes Alias, or null if OK": "9 - issue_de\nIndicateur de problème (allemand) : inaktiv, veraltet, verwaistes Alias, ou null si OK",
13
+ "Automatic Scanning": "Automatic Scanning",
14
+ "Check alias targets": "Check alias targets",
15
+ "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.",
16
+ "Datapoints not updated for this many days are marked as 'dead'": "Datapoints not updated for this many days are marked as 'dead'",
17
+ "Datapoints not updated for this many days are marked as 'stale'": "Datapoints not updated for this many days are marked as 'stale'",
18
+ "Days until 'dead' (critical)": "Days until 'dead' (critical)",
19
+ "Days until 'stale' (warning)": "Days until 'stale' (warning)",
20
+ "Description": "Description",
21
+ "Detection Thresholds": "Detection Thresholds",
22
+ "Each scan result contains a JSON array with the following fields per datapoint:": "Chaque résultat d'analyse contient un tableau JSON avec les champs suivants par point de données :",
23
+ "Each scan result contains a JSON array with the following fields per datapoint:\n\n• id - Full datapoint path (unique identification)\n• name - common.name or last part of ID (user-friendly name)\n• last_ts - Unix timestamp in ms or null (for sorting)\n• last_ts_iso - Formatted date string (for display)\n• value - Current datapoint value (final check before deletion)\n• status - active, dead, stale, undefined, orphaned (classification in English)\n• status_de - aktiv, inaktiv, veraltet, undefiniert, verwaist (classification in German)\n• issue - dead, stale, orphaned_alias, or null (filter criterion in English)\n• issue_de - inaktiv, veraltet, verwaistes Alias, or null (filter criterion in German)\n• size - JSON.stringify(val).length (finds storage hogs)": "Chaque résultat d'analyse contient un tableau JSON avec les champs suivants par point de données :\n\n• id - Chemin complet du point de données (identification unique)\n• nom - common.name ou dernière partie de l'ID (nom convivial)\n• last_ts - Horodatage Unix en ms ou null (pour le tri)\n• last_ts_iso - Chaîne de date formatée (pour l'affichage)\n• valeur - Valeur actuelle du point de données (vérification finale avant suppression)\n• statut - actif, mort, périmé, indéfini, orphelin (classification en anglais)\n• status_de - aktiv, inaktiv, veraltet, undefiniert, verwaist (classification en allemand)\n• problème : mort, obsolète, orphelin_alias ou nul (critère de filtre en anglais)\n• issue_de - inaktiv, veraltet, verwaistes Alias ou null (critère de filtre en allemand)\n• size - JSON.stringify(val).length (trouve les porcs de stockage)",
24
+ "Enable automatic scans": "Enable automatic scans",
25
+ "Enabled": "Enabled",
26
+ "Feldbeschreibungen (Deutsch):": "Descriptions des champs (allemand) :",
27
+ "Field": "Schlüssel",
28
+ "Field descriptions": "Description des champs",
29
+ "Field descriptions (English):": "Descriptions des champs (anglais) :",
30
+ "Field descriptions:": "Description des champs :",
31
+ "For German tables, use the '_de' fields (status_de, issue_de) in your VIS widget column configuration. For English tables, use the regular fields (status, issue). Both field sets are always included in the JSON output.": "Pour les tables allemandes, utilisez les champs '_de' (status_de, issue_de) dans la configuration de la colonne de votre widget VIS. Pour les tableaux en anglais, utilisez les champs habituels (statut, problème). Both field sets are always included in the JSON output.",
32
+ "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.",
33
+ "For alias.* paths: Check if target datapoints exist (ghost detection)": "For alias.* paths: Check if target datapoints exist (ghost detection)",
34
+ "General Settings": "General Settings",
35
+ "Help & Documentation": "Aide et documentation",
36
+ "How often the automatic scan should run (minimum 1 hour)": "How often the automatic scan should run (minimum 1 hour)",
37
+ "JSON Table Field Description": "JSON Table Field Description",
38
+ "Name (for result state)": "Name (for result state)",
39
+ "Path (e.g. 0_userdata.0 or alias.0)": "Path (e.g. 0_userdata.0 or alias.0)",
40
+ "Path Configuration": "Configuration du chemin",
41
+ "Paths to scan": "Paths to scan",
42
+ "Purpose": "But",
43
+ "Scan Paths": "Scan Paths",
44
+ "Scan interval (hours)": "Scan interval (hours)",
45
+ "Usage in VIS Widgets": "Utilisation dans les widgets VIS",
46
+ "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",
47
+ "tidy adapter settings": "Adapter settings for tidy",
48
+ "• id\n Full datapoint path (unique identification)": "• identifiant\n Chemin complet du point de données (identification unique)",
49
+ "• id - Full datapoint path\n• name - common.name or last part of ID\n• last_ts - Unix timestamp (ms) or null\n• last_ts_iso - Formatted date string\n• value - Current datapoint value": "• id - Chemin complet du point de données\n• nom : nom commun ou dernière partie de l'identifiant\n• last_ts - Horodatage Unix (ms) ou null\n• last_ts_iso - Chaîne de date formatée\n• valeur - Valeur actuelle du point de données",
50
+ "• issue\n Problem indicator (English): dead, stale, orphaned_alias, or null if OK": "• problème\n Indicateur de problème (anglais) : mort, obsolète, orphelin_alias ou null si OK",
51
+ "• issue / issue_de - Problem indicator (null if OK)\n Values: dead/inaktiv, stale/veraltet, orphaned_alias/verwaistes Alias, or null": "• issue / issue_de - Indicateur de problème (nul si OK)\n Valeurs : dead/inaktiv, stale/veraltet, orphaned_alias/verwaistes Alias ou null",
52
+ "• issue_de\n Problem indicator (German): inaktiv, veraltet, verwaistes Alias, or null if OK": "• issue_de\n Indicateur de problème (allemand) : inaktiv, veraltet, verwaistes Alias, ou null si OK",
53
+ "• last_ts\n Unix timestamp in ms or null (for sorting)": "• last_ts\n Horodatage Unix en ms ou null (pour le tri)",
54
+ "• last_ts_iso\n Formatted date string (for display in table)": "• last_ts_iso\n Chaîne de date formatée (pour affichage dans le tableau)",
55
+ "• name\n common.name or last part of ID (user-friendly name)": "• nom\n common.name ou dernière partie de l'ID (nom convivial)",
56
+ "• size\n JSON.stringify(val).length (finds storage hogs)": "• taille\n JSON.stringify(val).length (trouve les porcs de stockage)",
57
+ "• size - JSON.stringify(val).length (finds storage hogs)": "• size - JSON.stringify(val).length (trouve les porcs de stockage)",
58
+ "• status\n Classification in English: active, dead, stale, undefined, orphaned": "• statut\n Classification en anglais : actif, mort, périmé, indéfini, orphelin",
59
+ "• status / status_de - Classification (English / German)\n Values: active/aktiv, dead/inaktiv, stale/veraltet, undefined/undefiniert, orphaned/verwaist": "• status / status_de - Classification (anglais / allemand)\n Valeurs : actif/actif, mort/inactif, obsolète/vérifié, indéfini/indéfini, orphelin/verwaist",
60
+ "• status_de\n Classification in German: aktiv, inaktiv, veraltet, undefiniert, verwaist": "• status_de\n Classification en allemand : aktiv, inaktiv, veraltet, undefiniert, verwaist",
61
+ "• value\n Current datapoint value (final check before deletion)": "• valeur\n Valeur actuelle du point de données (vérification finale avant suppression)"
62
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "1 - id\nFull datapoint path (unique identification)": "1 - id\nPercorso completo del punto dati (identificazione univoca)",
3
+ "1 - id\nVollständiger Datenpunkt-Pfad (eindeutige Identifikation)": "1 - id\nPercorso completo del punto dati (identificazione univoca)",
4
+ "10 - size\nJSON.stringify(val).length (finds storage hogs)": "10 - dimensione\nJSON.stringify(val).length (trova i maiali di archiviazione)",
5
+ "2 - name\ncommon.name or last part of ID (user-friendly name)": "2 - nome\ncommon.name o ultima parte dell'ID (nome descrittivo)",
6
+ "3 - last_ts\nUnix timestamp in ms or null (for sorting)": "3 - ultimo_ts\nTimestamp Unix in ms o null (per l'ordinamento)",
7
+ "4 - last_ts_iso\nFormatted date string (for display in table)": "4 - last_ts_iso\nStringa di data formattata (per la visualizzazione nella tabella)",
8
+ "5 - value\nCurrent datapoint value (final check before deletion)": "5 - valore\nValore del punto dati attuale (controllo finale prima della cancellazione)",
9
+ "6 - status\nClassification in English: active, dead, stale, undefined, orphaned": "6 - stato\nClassificazione in inglese: attivo, morto, stantio, indefinito, orfano",
10
+ "7 - status_de\nClassification in German: aktiv, inaktiv, veraltet, undefiniert, verwaist": "7 - stato_de\nClassificazione in tedesco: aktiv, inaktiv, veraltet, undefiniert, verwaist",
11
+ "8 - issue\nProblem indicator (English): dead, stale, orphaned_alias, or null if OK": "8 - questione\nIndicatore del problema (inglese): dead, stale, orphaned_alias o null se OK",
12
+ "9 - issue_de\nProblem indicator (German): inaktiv, veraltet, verwaistes Alias, or null if OK": "9 - problema_de\nIndicatore di problema (tedesco): inaktiv, veraltet, verwaistes Alias o null se OK",
13
+ "Automatic Scanning": "Automatic Scanning",
14
+ "Check alias targets": "Check alias targets",
15
+ "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.",
16
+ "Datapoints not updated for this many days are marked as 'dead'": "Datapoints not updated for this many days are marked as 'dead'",
17
+ "Datapoints not updated for this many days are marked as 'stale'": "Datapoints not updated for this many days are marked as 'stale'",
18
+ "Days until 'dead' (critical)": "Days until 'dead' (critical)",
19
+ "Days until 'stale' (warning)": "Days until 'stale' (warning)",
20
+ "Description": "Descrizione",
21
+ "Detection Thresholds": "Detection Thresholds",
22
+ "Each scan result contains a JSON array with the following fields per datapoint:": "Ogni risultato della scansione contiene un array JSON con i seguenti campi per punto dati:",
23
+ "Each scan result contains a JSON array with the following fields per datapoint:\n\n• id - Full datapoint path (unique identification)\n• name - common.name or last part of ID (user-friendly name)\n• last_ts - Unix timestamp in ms or null (for sorting)\n• last_ts_iso - Formatted date string (for display)\n• value - Current datapoint value (final check before deletion)\n• status - active, dead, stale, undefined, orphaned (classification in English)\n• status_de - aktiv, inaktiv, veraltet, undefiniert, verwaist (classification in German)\n• issue - dead, stale, orphaned_alias, or null (filter criterion in English)\n• issue_de - inaktiv, veraltet, verwaistes Alias, or null (filter criterion in German)\n• size - JSON.stringify(val).length (finds storage hogs)": "Ogni risultato della scansione contiene un array JSON con i seguenti campi per punto dati:\n\n• id: percorso completo del punto dati (identificazione univoca)\n• nome - nome.comune o ultima parte dell'ID (nome descrittivo)\n• last_ts - timestamp Unix in ms o null (per l'ordinamento)\n• last_ts_iso - Stringa di data formattata (per la visualizzazione)\n• valore: valore del punto dati corrente (controllo finale prima della cancellazione)\n• stato: attivo, morto, stantio, non definito, orfano (classificazione in inglese)\n• status_de - aktiv, inaktiv, veraltet, undefiniert, verwaist (classificazione in tedesco)\n• problema: dead, stale, orphaned_alias o null (criterio di filtro in inglese)\n• issue_de - inaktiv, veraltet, verwaistes Alias o null (criterio di filtro in tedesco)\n• size - JSON.stringify(val).length (trova i maiali di archiviazione)",
24
+ "Enable automatic scans": "Enable automatic scans",
25
+ "Enabled": "Enabled",
26
+ "Feldbeschreibungen (Deutsch):": "Descrizioni dei campi (tedesco):",
27
+ "Field": "Schlüssel",
28
+ "Field descriptions": "Descrizioni dei campi",
29
+ "Field descriptions (English):": "Descrizioni dei campi (inglese):",
30
+ "Field descriptions:": "Descrizioni dei campi:",
31
+ "For German tables, use the '_de' fields (status_de, issue_de) in your VIS widget column configuration. For English tables, use the regular fields (status, issue). Both field sets are always included in the JSON output.": "Per le tabelle tedesche, utilizza i campi '_de' (status_de, issue_de) nella configurazione della colonna del widget VIS. Per le tabelle in inglese, utilizzare i campi regolari (stato, problema). Entrambi i set di campi sono sempre inclusi nell'output JSON.",
32
+ "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.",
33
+ "For alias.* paths: Check if target datapoints exist (ghost detection)": "For alias.* paths: Check if target datapoints exist (ghost detection)",
34
+ "General Settings": "General Settings",
35
+ "Help & Documentation": "Aiuto e documentazione",
36
+ "How often the automatic scan should run (minimum 1 hour)": "How often the automatic scan should run (minimum 1 hour)",
37
+ "JSON Table Field Description": "Descrizione campo tabella JSON",
38
+ "Name (for result state)": "Name (for result state)",
39
+ "Path (e.g. 0_userdata.0 or alias.0)": "Path (e.g. 0_userdata.0 or alias.0)",
40
+ "Path Configuration": "Configurazione del percorso",
41
+ "Paths to scan": "Paths to scan",
42
+ "Purpose": "Scopo",
43
+ "Scan Paths": "Scan Paths",
44
+ "Scan interval (hours)": "Scan interval (hours)",
45
+ "Usage in VIS Widgets": "Utilizzo nei widget VIS",
46
+ "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",
47
+ "tidy adapter settings": "Adapter settings for tidy",
48
+ "• id\n Full datapoint path (unique identification)": "• identificativo\n Percorso completo del punto dati (identificazione univoca)",
49
+ "• id - Full datapoint path\n• name - common.name or last part of ID\n• last_ts - Unix timestamp (ms) or null\n• last_ts_iso - Formatted date string\n• value - Current datapoint value": "• id: percorso completo del punto dati\n• nome - nome.comune o ultima parte dell'ID\n• last_ts - timestamp Unix (ms) o null\n• last_ts_iso - Stringa di data formattata\n• valore: valore del punto dati corrente",
50
+ "• issue\n Problem indicator (English): dead, stale, orphaned_alias, or null if OK": "• problema\n Indicatore del problema (inglese): dead, stale, orphaned_alias o null se OK",
51
+ "• issue / issue_de - Problem indicator (null if OK)\n Values: dead/inaktiv, stale/veraltet, orphaned_alias/verwaistes Alias, or null": "• issue / issue_de - Indicatore del problema (null se OK)\n Valori: dead/inaktiv, stale/veraltet, orphaned_alias/verwaistes Alias o null",
52
+ "• issue_de\n Problem indicator (German): inaktiv, veraltet, verwaistes Alias, or null if OK": "• emissione_de\n Indicatore di problema (tedesco): inaktiv, veraltet, verwaistes Alias o null se OK",
53
+ "• last_ts\n Unix timestamp in ms or null (for sorting)": "• ultimo_ts\n Timestamp Unix in ms o null (per l'ordinamento)",
54
+ "• last_ts_iso\n Formatted date string (for display in table)": "• last_ts_iso\n Formatted date string (for display in table)",
55
+ "• name\n common.name or last part of ID (user-friendly name)": "• nome\n common.name o ultima parte dell'ID (nome descrittivo)",
56
+ "• size\n JSON.stringify(val).length (finds storage hogs)": "• dimensione\n JSON.stringify(val).length (trova i maiali di archiviazione)",
57
+ "• size - JSON.stringify(val).length (finds storage hogs)": "• size - JSON.stringify(val).length (trova i maiali di archiviazione)",
58
+ "• status\n Classification in English: active, dead, stale, undefined, orphaned": "• stato\n Classificazione in inglese: attivo, morto, stantio, indefinito, orfano",
59
+ "• status / status_de - Classification (English / German)\n Values: active/aktiv, dead/inaktiv, stale/veraltet, undefined/undefiniert, orphaned/verwaist": "• status / status_de - Classificazione (inglese/tedesco)\n Valori: attivo/aktiv, morto/inattivo, stantio/veraltet, undefinito/undefiniert, orfano/verwaist",
60
+ "• status_de\n Classification in German: aktiv, inaktiv, veraltet, undefiniert, verwaist": "• stato_de\n Classificazione in tedesco: aktiv, inaktiv, veraltet, undefiniert, verwaist",
61
+ "• value\n Current datapoint value (final check before deletion)": "• valore\n Valore del punto dati attuale (controllo finale prima della cancellazione)"
62
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "1 - id\nFull datapoint path (unique identification)": "1 - identiteitskaart\nVolledig datapuntpad (unieke identificatie)",
3
+ "1 - id\nVollständiger Datenpunkt-Pfad (eindeutige Identifikation)": "1 - identiteitskaart\nVolledig datapuntpad (unieke identificatie)",
4
+ "10 - size\nJSON.stringify(val).length (finds storage hogs)": "10 - maat\nJSON.stringify(val).length (vindt opslagvarkens)",
5
+ "2 - name\ncommon.name or last part of ID (user-friendly name)": "2 - naam\ncommon.name of laatste deel van ID (gebruikersvriendelijke naam)",
6
+ "3 - last_ts\nUnix timestamp in ms or null (for sorting)": "3 - laatste_ts\nUnix-tijdstempel in ms of null (voor sorteren)",
7
+ "4 - last_ts_iso\nFormatted date string (for display in table)": "4 - laatste_ts_iso\nOpgemaakte datumreeks (voor weergave in tabel)",
8
+ "5 - value\nCurrent datapoint value (final check before deletion)": "5 - waarde\nHuidige datapuntwaarde (laatste controle vóór verwijdering)",
9
+ "6 - status\nClassification in English: active, dead, stale, undefined, orphaned": "6 - status\nClassificatie in het Engels: actief, dood, muf, ongedefinieerd, verweesd",
10
+ "7 - status_de\nClassification in German: aktiv, inaktiv, veraltet, undefiniert, verwaist": "7 - status_de\nClassificatie in het Duits: aktiv, inaktiv, veraltet, undefiniert, verwaist",
11
+ "8 - issue\nProblem indicator (English): dead, stale, orphaned_alias, or null if OK": "8 - probleem\nProbleemindicator (Engels): dood, oud, wees_alias of null indien OK",
12
+ "9 - issue_de\nProblem indicator (German): inaktiv, veraltet, verwaistes Alias, or null if OK": "9 - issue_de\nProbleemindicator (Duits): inaktiv, veraltet, verwaistes Alias of null indien OK",
13
+ "Automatic Scanning": "Automatic Scanning",
14
+ "Check alias targets": "Check alias targets",
15
+ "Configure which paths to scan for unused datapoints. Each path will get its own result state with a JSON table.": "Configureer welke paden moeten worden gescand op ongebruikte datapunten. Elk pad krijgt zijn eigen resultaatstatus met een JSON-tabel.",
16
+ "Datapoints not updated for this many days are marked as 'dead'": "Datapoints not updated for this many days are marked as 'dead'",
17
+ "Datapoints not updated for this many days are marked as 'stale'": "Datapoints not updated for this many days are marked as 'stale'",
18
+ "Days until 'dead' (critical)": "Days until 'dead' (critical)",
19
+ "Days until 'stale' (warning)": "Days until 'stale' (warning)",
20
+ "Description": "Beschrijving",
21
+ "Detection Thresholds": "Detection Thresholds",
22
+ "Each scan result contains a JSON array with the following fields per datapoint:": "Elk scanresultaat bevat een JSON-array met de volgende velden per datapunt:",
23
+ "Each scan result contains a JSON array with the following fields per datapoint:\n\n• id - Full datapoint path (unique identification)\n• name - common.name or last part of ID (user-friendly name)\n• last_ts - Unix timestamp in ms or null (for sorting)\n• last_ts_iso - Formatted date string (for display)\n• value - Current datapoint value (final check before deletion)\n• status - active, dead, stale, undefined, orphaned (classification in English)\n• status_de - aktiv, inaktiv, veraltet, undefiniert, verwaist (classification in German)\n• issue - dead, stale, orphaned_alias, or null (filter criterion in English)\n• issue_de - inaktiv, veraltet, verwaistes Alias, or null (filter criterion in German)\n• size - JSON.stringify(val).length (finds storage hogs)": "Elk scanresultaat bevat een JSON-array met de volgende velden per datapunt:\n\n• id - Volledig datapuntpad (unieke identificatie)\n• naam - algemene.naam of laatste deel van ID (gebruiksvriendelijke naam)\n• last_ts - Unix-tijdstempel in ms of null (voor sorteren)\n• last_ts_iso - Opgemaakte datumreeks (voor weergave)\n• waarde - Huidige datapuntwaarde (laatste controle vóór verwijdering)\n• status - active, dead, stale, undefined, orphaned (classification in English)\n• status_de - aktiv, inaktiv, veraltet, undefiniert, verwaist (classificatie in het Duits)\n• probleem - dood, oud, wees_alias of null (filtercriterium in het Engels)\n• issue_de - inaktiv, veraltet, verwaistes Alias of null (filtercriterium in het Duits)\n• size - JSON.stringify(val).length (vindt opslagvarkens)",
24
+ "Enable automatic scans": "Enable automatic scans",
25
+ "Enabled": "Enabled",
26
+ "Feldbeschreibungen (Deutsch):": "Veldbeschrijvingen (Duits):",
27
+ "Field": "Schlüssel",
28
+ "Field descriptions": "Veldbeschrijvingen",
29
+ "Field descriptions (English):": "Veldbeschrijvingen (Engels):",
30
+ "Field descriptions:": "Veldbeschrijvingen:",
31
+ "For German tables, use the '_de' fields (status_de, issue_de) in your VIS widget column configuration. For English tables, use the regular fields (status, issue). Both field sets are always included in the JSON output.": "Voor Duitse tabellen gebruikt u de velden '_de' (status_de, issue_de) in de kolomconfiguratie van uw VIS-widget. Voor Engelstalige tabellen gebruikt u de reguliere velden (status, issue). Beide veldsets worden altijd opgenomen in de JSON-uitvoer.",
32
+ "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.": "Voor Duitse tabellen: gebruik de kolommen status_de en issue_de\nVoor Engelse tabellen: gebruik status- en probleemkolommen\n\nFilter op 'issue != null' om alleen problematische datapunten weer te geven.",
33
+ "For alias.* paths: Check if target datapoints exist (ghost detection)": "For alias.* paths: Check if target datapoints exist (ghost detection)",
34
+ "General Settings": "General Settings",
35
+ "Help & Documentation": "Hulp & Documentatie",
36
+ "How often the automatic scan should run (minimum 1 hour)": "How often the automatic scan should run (minimum 1 hour)",
37
+ "JSON Table Field Description": "JSON-tabelveldbeschrijving",
38
+ "Name (for result state)": "Name (for result state)",
39
+ "Path (e.g. 0_userdata.0 or alias.0)": "Path (e.g. 0_userdata.0 or alias.0)",
40
+ "Path Configuration": "Padconfiguratie",
41
+ "Paths to scan": "Paths to scan",
42
+ "Purpose": "Doel",
43
+ "Scan Paths": "Scan Paths",
44
+ "Scan interval (hours)": "Scan interval (hours)",
45
+ "Usage in VIS Widgets": "Gebruik in VIS-widgets",
46
+ "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",
47
+ "tidy adapter settings": "Adapter settings for tidy",
48
+ "• id\n Full datapoint path (unique identification)": "• identiteitskaart\n Volledig datapuntpad (unieke identificatie)",
49
+ "• id - Full datapoint path\n• name - common.name or last part of ID\n• last_ts - Unix timestamp (ms) or null\n• last_ts_iso - Formatted date string\n• value - Current datapoint value": "• id - Volledig datapuntpad\n• naam - algemene.naam of laatste deel van ID\n• last_ts - Unix-tijdstempel (ms) of null\n• last_ts_iso - Opgemaakte datumreeks\n• waarde - Huidige datapuntwaarde",
50
+ "• issue\n Problem indicator (English): dead, stale, orphaned_alias, or null if OK": "• kwestie\n Probleemindicator (Engels): dood, oud, wees_alias of null indien OK",
51
+ "• issue / issue_de - Problem indicator (null if OK)\n Values: dead/inaktiv, stale/veraltet, orphaned_alias/verwaistes Alias, or null": "• issue / issue_de - Probleemindicator (null indien OK)\n Waarden: dead/inaktiv, muf/veraltet, orphaned_alias/verwaistes Alias, of null",
52
+ "• issue_de\n Problem indicator (German): inaktiv, veraltet, verwaistes Alias, or null if OK": "• issue_de\n Probleemindicator (Duits): inaktiv, veraltet, verwaistes Alias of null indien OK",
53
+ "• last_ts\n Unix timestamp in ms or null (for sorting)": "• laatste_ts\n Unix-tijdstempel in ms of null (voor sorteren)",
54
+ "• last_ts_iso\n Formatted date string (for display in table)": "• last_ts_iso\n Opgemaakte datumreeks (voor weergave in tabel)",
55
+ "• name\n common.name or last part of ID (user-friendly name)": "• naam\n common.name of laatste deel van ID (gebruikersvriendelijke naam)",
56
+ "• size\n JSON.stringify(val).length (finds storage hogs)": "• maat\n JSON.stringify(val).length (vindt opslagvarkens)",
57
+ "• size - JSON.stringify(val).length (finds storage hogs)": "• size - JSON.stringify(val).length (vindt opslagvarkens)",
58
+ "• status\n Classification in English: active, dead, stale, undefined, orphaned": "• status\n Classificatie in het Engels: actief, dood, muf, ongedefinieerd, verweesd",
59
+ "• status / status_de - Classification (English / German)\n Values: active/aktiv, dead/inaktiv, stale/veraltet, undefined/undefiniert, orphaned/verwaist": "• status / status_de - Classificatie (Engels / Duits)\n Waarden: actief/actief, dood/inactief, muf/veraltet, ongedefinieerd/ongedefinieerd, verweesd/verwaist",
60
+ "• status_de\n Classification in German: aktiv, inaktiv, veraltet, undefiniert, verwaist": "• status_de\n Classificatie in het Duits: aktiv, inaktiv, veraltet, undefiniert, verwaist",
61
+ "• value\n Current datapoint value (final check before deletion)": "• waarde\n Huidige datapuntwaarde (laatste controle vóór verwijdering)"
62
+ }