iobroker.tidy 0.1.0 → 0.1.3
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 +21 -21
- package/README.md +183 -172
- package/admin/i18n/de.json +5 -2
- package/admin/i18n/en.json +36 -34
- package/admin/i18n/es.json +23 -50
- package/admin/i18n/fr.json +24 -51
- package/admin/i18n/it.json +23 -50
- package/admin/i18n/nl.json +23 -50
- package/admin/i18n/pl.json +23 -50
- package/admin/i18n/pt.json +24 -51
- package/admin/i18n/ru.json +23 -50
- package/admin/i18n/uk.json +23 -50
- package/admin/i18n/zh-cn.json +23 -50
- package/admin/jsonConfig.json +286 -284
- package/io-package.json +27 -1
- package/lib/adapter-config.d.ts +18 -18
- package/main.js +8 -3
- package/package.json +8 -8
package/LICENSE
CHANGED
|
@@ -1,21 +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.
|
|
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
CHANGED
|
@@ -1,178 +1,189 @@
|
|
|
1
|
-

|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-

|
|
6
|
-

|
|
7
|
-
[](https://www.npmjs.com/package/iobroker.tidy)
|
|
8
|
-
[](https://www.npmjs.com/package/iobroker.tidy)
|
|
9
|
-
|
|
10
|
-
[
|
|
2
|
+
|
|
3
|
+
# ioBroker.tidy
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+
[](https://www.npmjs.com/package/iobroker.tidy)
|
|
8
|
+
[](https://www.npmjs.com/package/iobroker.tidy)
|
|
9
|
+
|
|
10
|
+
[](https://forum.iobroker.net/topic/84331/tidy-adapter-alpha)
|
|
11
|
+
[](https://github.com/skvarel)
|
|
12
|
+
[](https://github.com/inventwo/ioBroker.foxesscloud/blob/main/.github/copilot-instructions.md)
|
|
13
|
+
|
|
14
|
+
[](https://www.paypal.com/donate/?hosted_button_id=7W6M3TFZ4W9LW)
|
|
15
|
+
|
|
16
|
+
## What this adapter does
|
|
17
|
+
|
|
18
|
+
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.
|
|
19
|
+
|
|
20
|
+
## Features
|
|
21
|
+
|
|
22
|
+
- **📊 Path-based scanning**: Configure multiple paths to scan (e.g., `0_userdata.0`, `alias.0`)
|
|
23
|
+
- **🔍 Smart detection**: Identifies different types of problematic datapoints:
|
|
24
|
+
- **Dead**: Never updated or extremely old (configurable threshold, default: 365 days)
|
|
25
|
+
- **Stale**: Not updated recently (configurable threshold, default: 90 days)
|
|
26
|
+
- **Orphaned aliases**: Aliases pointing to non-existent target datapoints
|
|
27
|
+
- **Undefined**: Datapoints that were never written to since system start
|
|
28
|
+
- **⚙️ Flexible configuration**:
|
|
29
|
+
- Configurable age thresholds for "stale" and "dead" detection
|
|
30
|
+
- Optional automatic scanning at configurable intervals (hourly)
|
|
31
|
+
- Enable/disable individual scan paths
|
|
32
|
+
- **🎯 Manual triggers**: Each configured path gets a trigger button to run scans on demand
|
|
33
|
+
- **📋 JSON table output**: Results are provided as JSON arrays, perfect for table widgets in VIS
|
|
34
|
+
- **📈 Statistics**: Automatic counters for total, dead, stale, and orphaned datapoints
|
|
35
|
+
|
|
36
|
+
## Configuration
|
|
37
|
+
|
|
38
|
+
### General Settings
|
|
39
|
+
|
|
40
|
+
- **Enable automatic scans**: When enabled, all configured paths are scanned automatically
|
|
41
|
+
- **Scan interval**: How often automatic scans should run (in hours, minimum 1)
|
|
42
|
+
- **Days until 'stale'**: Datapoints not updated for this many days are marked as stale (warning)
|
|
43
|
+
- **Days until 'dead'**: Datapoints not updated for this many days are marked as dead (critical)
|
|
44
|
+
|
|
45
|
+
### Scan Paths
|
|
46
|
+
|
|
47
|
+
Configure one or more paths to monitor:
|
|
48
|
+
|
|
49
|
+
- **Enabled**: Enable/disable this scan path
|
|
50
|
+
- **Path**: The root path to scan (e.g., `0_userdata.0`, `alias.0`, `javascript.0`)
|
|
51
|
+
- **Name**: A friendly name for this path (used for result state naming)
|
|
52
|
+
- **Check alias targets**: For `alias.*` paths, check if target datapoints still exist (ghost detection)
|
|
53
|
+
|
|
54
|
+
## Data Points
|
|
55
|
+
|
|
56
|
+
For each configured path (e.g., "userdata"), the adapter creates:
|
|
57
|
+
|
|
58
|
+
- **`tidy.0.userdata.trigger`** (button): Click to manually start a scan
|
|
59
|
+
- **`tidy.0.userdata.result`** (json): Complete scan results as JSON table
|
|
60
|
+
- **`tidy.0.userdata.lastScan`** (timestamp): When the last scan was performed
|
|
61
|
+
- **`tidy.0.userdata.count`** (number): Total datapoints found
|
|
62
|
+
- **`tidy.0.userdata.deadCount`** (number): Number of dead datapoints
|
|
63
|
+
- **`tidy.0.userdata.staleCount`** (number): Number of stale datapoints
|
|
64
|
+
- **`tidy.0.userdata.orphanedCount`** (number): Number of orphaned aliases
|
|
65
|
+
|
|
66
|
+
### JSON Result Structure
|
|
67
|
+
|
|
68
|
+
The `result` state contains a JSON array with the following fields for each datapoint:
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
[
|
|
72
|
+
{
|
|
73
|
+
"id": "0_userdata.0.hallway.light_auto",
|
|
74
|
+
"name": "Hallway Light Automation",
|
|
75
|
+
"last_ts": 1712856000000,
|
|
76
|
+
"last_ts_iso": "4/11/2026, 6:00:00 PM",
|
|
77
|
+
"value": true,
|
|
78
|
+
"status": "active",
|
|
79
|
+
"issue": null,
|
|
80
|
+
"size": 4
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"id": "0_userdata.0.test.old_value",
|
|
84
|
+
"name": "Test Datapoint",
|
|
85
|
+
"last_ts": null,
|
|
86
|
+
"last_ts_iso": "undefined",
|
|
87
|
+
"value": 15,
|
|
88
|
+
"status": "undefined",
|
|
89
|
+
"issue": "dead",
|
|
90
|
+
"size": 2
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Field descriptions:**
|
|
96
|
+
|
|
97
|
+
| Field | Description | Purpose |
|
|
98
|
+
|-------|-------------|---------|
|
|
99
|
+
| `id` | Full datapoint path | Unique identification |
|
|
100
|
+
| `name` | common.name or last part of ID | User-friendly name |
|
|
101
|
+
| `last_ts` | Unix timestamp (ms) or null | Sorting in background |
|
|
102
|
+
| `last_ts_iso` | Formatted date string | Display in table |
|
|
103
|
+
| `value` | Current datapoint value | Final check before deletion |
|
|
104
|
+
| `status` | `active`, `dead`, `stale`, `undefined`, `orphaned` | Classification (English) |
|
|
105
|
+
| `status_de` | `aktiv`, `inaktiv`, `veraltet`, `undefiniert`, `verwaist` | Classification (German) |
|
|
106
|
+
| `issue` | `dead`, `stale`, `orphaned_alias`, or `null` | Filter criterion (null = OK) |
|
|
107
|
+
| `issue_de` | `inaktiv`, `veraltet`, `verwaistes Alias`, or `null` | Filter criterion (German) |
|
|
108
|
+
| `size` | `JSON.stringify(val).length` | Finds "storage hogs" |
|
|
109
|
+
|
|
110
|
+
## Usage Examples
|
|
111
|
+
|
|
112
|
+
### Basic Setup
|
|
113
|
+
|
|
114
|
+
1. Install and configure the adapter
|
|
115
|
+
2. Add a path to scan (e.g., `0_userdata.0`)
|
|
116
|
+
3. Give it a name (e.g., "userdata")
|
|
117
|
+
4. Save configuration
|
|
118
|
+
5. The adapter will immediately perform an initial scan
|
|
119
|
+
6. View results in `tidy.0.userdata.result`
|
|
120
|
+
|
|
121
|
+
### VIS Integration
|
|
122
|
+
|
|
123
|
+
Use the JSON result with a table widget to display and sort your datapoints:
|
|
124
|
+
|
|
125
|
+
1. Create a table widget in VIS (e.g., inventwo Table Widget)
|
|
126
|
+
2. Bind it to `tidy.0.userdata.result`
|
|
127
|
+
3. Configure columns:
|
|
128
|
+
- For **German** tables: `id`, `name`, `last_ts_iso`, `status_de`, `issue_de`
|
|
129
|
+
- For **English** tables: `id`, `name`, `last_ts_iso`, `status`, `issue`
|
|
130
|
+
4. Sort by `last_ts` (oldest first) to find the "deadest" datapoints
|
|
131
|
+
5. Filter by `issue != null` to show only problematic datapoints
|
|
132
|
+
|
|
133
|
+
### Automatic Maintenance
|
|
134
|
+
|
|
135
|
+
1. Enable "automatic scans" in settings
|
|
136
|
+
2. Set interval to 24 hours (once daily)
|
|
137
|
+
3. Monitor `deadCount` and `staleCount` statistics
|
|
138
|
+
4. Review results weekly to identify cleanup candidates
|
|
139
|
+
|
|
140
|
+
## Support
|
|
141
|
+
|
|
142
|
+
If you like our work and would like to support us, we appreciate any donation.
|
|
143
|
+
(This link leads to our PayPal account and is not affiliated with ioBroker.)
|
|
144
|
+
|
|
145
|
+
[](https://www.paypal.com/donate?hosted_button_id=7W6M3TFZ4W9LW)
|
|
146
|
+
|
|
147
|
+
## Changelog
|
|
148
|
+
<!--
|
|
149
|
+
### **WORK IN PROGRESS**
|
|
146
150
|
-->
|
|
147
|
-
### 0.1.
|
|
151
|
+
### 0.1.3 (2026-05-24)
|
|
152
|
+
- (skvarel) Fixed repo checker issue
|
|
153
|
+
|
|
154
|
+
### 0.1.1 (2026-04-18)
|
|
155
|
+
- (skvarel) Changed name of result field to optional
|
|
156
|
+
- (skvarel) Revised config
|
|
157
|
+
|
|
158
|
+
### 0.1.0 (2026-04-17)
|
|
148
159
|
- (skvarel) Added option for complete scan
|
|
149
160
|
|
|
150
|
-
### 0.0.1 (2026-04-14)
|
|
161
|
+
### 0.0.1 (2026-04-14)
|
|
151
162
|
- (skvarel) initial release
|
|
152
163
|
|
|
153
|
-
## Older changes
|
|
154
|
-
- [CHANGELOG_OLD.md](CHANGELOG_OLD.md)
|
|
155
|
-
|
|
156
|
-
## License
|
|
157
|
-
|
|
158
|
-
MIT License
|
|
159
|
-
|
|
160
|
-
Copyright (c) 2026 skvarel <skvarel@inventwo.com>
|
|
161
|
-
|
|
162
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
163
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
164
|
-
in the Software without restriction, including without limitation the rights
|
|
165
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
166
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
167
|
-
furnished to do so, subject to the following conditions:
|
|
168
|
-
|
|
169
|
-
The above copyright notice and this permission notice shall be included in all
|
|
170
|
-
copies or substantial portions of the Software.
|
|
171
|
-
|
|
172
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
173
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
174
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
175
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
176
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
177
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
164
|
+
## Older changes
|
|
165
|
+
- [CHANGELOG_OLD.md](CHANGELOG_OLD.md)
|
|
166
|
+
|
|
167
|
+
## License
|
|
168
|
+
|
|
169
|
+
MIT License
|
|
170
|
+
|
|
171
|
+
Copyright (c) 2026 skvarel <skvarel@inventwo.com>
|
|
172
|
+
|
|
173
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
174
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
175
|
+
in the Software without restriction, including without limitation the rights
|
|
176
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
177
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
178
|
+
furnished to do so, subject to the following conditions:
|
|
179
|
+
|
|
180
|
+
The above copyright notice and this permission notice shall be included in all
|
|
181
|
+
copies or substantial portions of the Software.
|
|
182
|
+
|
|
183
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
184
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
185
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
186
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
187
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
188
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
178
189
|
SOFTWARE.
|
package/admin/i18n/de.json
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
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
13
|
"Enable automatic scans": "Automatisches Scannen aktivieren",
|
|
14
14
|
"Enabled": "Aktiviert",
|
|
15
|
+
"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.",
|
|
15
16
|
"Feldbeschreibungen (Deutsch):": "Feldbeschreibungen (Deutsch):",
|
|
16
17
|
"Field": "Schlüssel",
|
|
17
18
|
"Field descriptions": "Feldbeschreibungen",
|
|
@@ -22,10 +23,12 @@
|
|
|
22
23
|
"General Settings": "Allgemeine Einstellungen",
|
|
23
24
|
"Help & Documentation": "Hilfe & Dokumentation",
|
|
24
25
|
"How often the automatic scan should run (minimum 1 hour)": "Wie oft der automatische Scan ausgeführt werden soll (mindestens 1 Stunde)",
|
|
25
|
-
"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'-
|
|
26
|
+
"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.",
|
|
26
27
|
"JSON Table Field Description": "JSON-Tabellen-Feldbeschreibung",
|
|
27
28
|
"Name (for result state)": "Name (für Ergebnis-Datenpunkt)",
|
|
28
|
-
"
|
|
29
|
+
"Name (for result state, optional)": "Name (für Ergebnis-Datenpunkt, optional)",
|
|
30
|
+
"Optional. If empty, the path will be used as name.": "Optional. Wenn leer, wird der Pfad als Name verwendet.",
|
|
31
|
+
"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
32
|
"Path Configuration": "Pfad-Konfiguration",
|
|
30
33
|
"Paths to scan": "Zu scannende Pfade",
|
|
31
34
|
"Purpose": "Zweck",
|
package/admin/i18n/en.json
CHANGED
|
@@ -1,35 +1,37 @@
|
|
|
1
|
-
{
|
|
2
|
-
"
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
|
|
1
|
+
{
|
|
2
|
+
"Name (for result state, optional)": "Name (for result state, optional)",
|
|
3
|
+
"Optional. If empty, the path will be used as name.": "Optional. If empty, the path will be used as name.",
|
|
4
|
+
"Automatic Scanning": "Automatic Scanning",
|
|
5
|
+
"Check alias targets": "Check alias targets",
|
|
6
|
+
"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.",
|
|
7
|
+
"Days until 'dead' (critical)": "Days until 'dead' (critical)",
|
|
8
|
+
"Days until 'stale' (warning)": "Days until 'stale' (warning)",
|
|
9
|
+
"Datapoints not updated for this many days are marked as 'dead'": "Datapoints not updated for this many days are marked as 'dead'",
|
|
10
|
+
"Datapoints not updated for this many days are marked as 'stale'": "Datapoints not updated for this many days are marked as 'stale'",
|
|
11
|
+
"Detection Thresholds": "Detection Thresholds",
|
|
12
|
+
"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:",
|
|
13
|
+
"Enable automatic scans": "Enable automatic scans",
|
|
14
|
+
"Scan all objects (complete)": "Scan all objects (complete)",
|
|
15
|
+
"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.",
|
|
16
|
+
"Enabled": "Enabled",
|
|
17
|
+
"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
|
+
"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.",
|
|
19
|
+
"For alias.* paths: Check if target datapoints exist (ghost detection)": "For alias.* paths: Check if target datapoints exist (ghost detection)",
|
|
20
|
+
"General Settings": "General Settings",
|
|
21
|
+
"Help & Documentation": "Help & Documentation",
|
|
22
|
+
"How often the automatic scan should run (minimum 1 hour)": "How often the automatic scan should run (minimum 1 hour)",
|
|
23
|
+
"JSON Table Field Description": "JSON Table Field Description",
|
|
24
|
+
"Name (for result state)": "Name (for result state)",
|
|
25
|
+
"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.)",
|
|
26
|
+
"Path Configuration": "Path Configuration",
|
|
27
|
+
"Paths to scan": "Paths to scan",
|
|
28
|
+
"Scan interval (hours)": "Scan interval (hours)",
|
|
29
|
+
"Scan Paths": "Scan Paths",
|
|
30
|
+
"tidy adapter settings": "Adapter settings for tidy",
|
|
31
|
+
"Usage in VIS Widgets": "Usage in VIS Widgets",
|
|
32
|
+
"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",
|
|
33
|
+
"Field descriptions": "Field descriptions",
|
|
34
|
+
"Purpose": "Purpose",
|
|
35
|
+
"Field": "Schlüssel",
|
|
36
|
+
"Description": "Description"
|
|
35
37
|
}
|