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 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
- ![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**
1
+ ![Logo](admin/tidy.svg)
2
+
3
+ # ioBroker.tidy
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
+ [![COMMUNITY](https://img.shields.io/badge/community%20-ioBroker%20|%20forum-blue.svg)](https://forum.iobroker.net/topic/84331/tidy-adapter-alpha)
11
+ [![MAINTAINER](https://img.shields.io/badge/maintainer-skvarel%20@%20inventwo-yellowgreen.svg)](https://github.com/skvarel)
12
+ [![AI](https://img.shields.io/badge/ai%20assisted-copilot-blue.svg)](https://github.com/inventwo/ioBroker.foxesscloud/blob/main/.github/copilot-instructions.md)
13
+
14
+ [![Paypal Donation](https://img.shields.io/badge/paypal-donate%20|%20spenden-green.svg)](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
+ [![Donate](img/support.png)](https://www.paypal.com/donate?hosted_button_id=7W6M3TFZ4W9LW)
146
+
147
+ ## Changelog
148
+ <!--
149
+ ### **WORK IN PROGRESS**
146
150
  -->
147
- ### 0.1.0 (2026-04-17)
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.
@@ -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'-Kanal.",
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
- "Path (e.g. 0_userdata.0 or alias.0)": "Pfad (z.B. 0_userdata.0 oder alias.0)",
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",
@@ -1,35 +1,37 @@
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
- "Scan all objects (complete)": "Scan all objects (complete)",
13
- "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.",
14
- "Enabled": "Enabled",
15
- "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.",
16
- "For alias.* paths: Check if target datapoints exist (ghost detection)": "For alias.* paths: Check if target datapoints exist (ghost detection)",
17
- "General Settings": "General Settings",
18
- "Help & Documentation": "Help & Documentation",
19
- "How often the automatic scan should run (minimum 1 hour)": "How often the automatic scan should run (minimum 1 hour)",
20
- "JSON Table Field Description": "JSON Table Field Description",
21
- "Name (for result state)": "Name (for result state)",
22
- "Path (e.g. 0_userdata.0 or alias.0)": "Path (e.g. 0_userdata.0 or alias.0)",
23
- "Path Configuration": "Path Configuration",
24
- "Paths to scan": "Paths to scan",
25
- "Scan interval (hours)": "Scan interval (hours)",
26
- "Scan Paths": "Scan Paths",
27
- "tidy adapter settings": "Adapter settings for tidy",
28
- "Usage in VIS Widgets": "Usage in VIS Widgets",
29
- "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",
30
- "Field descriptions": "Field descriptions",
31
- "Purpose": "Purpose",
32
- "Field": "Schlüssel",
33
- "Description": "Description"
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
  }