iobroker.nut2 0.5.2

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 krobi <krobi@power-dreams.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,250 @@
1
+ # <img src="https://cdn.jsdelivr.net/gh/krobipd/ioBroker.nut2@main/admin/nut2.svg" width="48" align="top" /> ioBroker.nut2
2
+
3
+ **Release:** [![npm version](https://img.shields.io/npm/v/iobroker.nut2)](https://www.npmjs.com/package/iobroker.nut2) ![stable](https://iobroker.live/badges/nut2-stable.svg) ![Installations](https://iobroker.live/badges/nut2-installed.svg) [![npm downloads](https://img.shields.io/npm/dt/iobroker.nut2)](https://www.npmjs.com/package/iobroker.nut2)
4
+
5
+ **Build:** [![Test and Release](https://github.com/krobipd/ioBroker.nut2/actions/workflows/test-and-release.yml/badge.svg)](https://github.com/krobipd/ioBroker.nut2/actions/workflows/test-and-release.yml) ![Node](https://img.shields.io/badge/node-%3E%3D22-brightgreen) ![TypeScript](https://img.shields.io/badge/TypeScript-strict-blue) [![License](https://img.shields.io/badge/license-MIT-green)](LICENSE)
6
+
7
+ **Support:** [![Ko-fi](https://img.shields.io/badge/Ko--fi-Support-ff5e5b?logo=ko-fi)](https://ko-fi.com/krobipd) [![PayPal](https://img.shields.io/badge/Donate-PayPal-blue.svg)](https://paypal.me/krobipd)
8
+
9
+ Monitors uninterruptible power supplies via [Network UPS Tools (NUT)](https://networkupstools.org/). All UPS devices connected to a NUT server are automatically discovered and polled.
10
+
11
+ ---
12
+
13
+ ## Features
14
+
15
+ - Automatic discovery of all UPS devices on a NUT server via `LIST UPS`
16
+ - Dynamic state creation from `LIST VAR` — whatever your UPS reports appears as ioBroker states
17
+ - Proper data types: numeric values as numbers (not strings), with units (V, Hz, A, Ah, %, W, VA, s, °C)
18
+ - Parsed `ups.status` flags as individual booleans (online, onBattery, lowBattery, charging, ...) plus computed severity (0–4)
19
+ - Instant commands (INSTCMD) via button states — beeper control, load management, self-test
20
+ - Writable variables (SET VAR) — change UPS settings directly from ioBroker
21
+ - Persistent TCP connection with automatic reconnect and exponential backoff
22
+ - Network interface selector for multi-homed servers
23
+ - Connection test button in the admin UI
24
+
25
+ ---
26
+
27
+ ## Requirements
28
+
29
+ - **Node.js >= 22**
30
+ - **ioBroker js-controller >= 7.2.2**
31
+ - **ioBroker Admin >= 7.8.23**
32
+ - A running [NUT server](https://networkupstools.org/) (upsd) with at least one UPS configured
33
+
34
+ ---
35
+
36
+ ## Configuration
37
+
38
+ ### Connection
39
+
40
+ | Option | Description | Default |
41
+ | --------------------- | ---------------------------------------------------------------------- | ------- |
42
+ | **NUT Server Host** | Hostname or IP address of the NUT server | — |
43
+ | **Port** | NUT server port | `3493` |
44
+ | **Network Interface** | Bind outgoing connections to a specific local IP (optional) | all |
45
+ | **Poll Interval (s)** | How often to query the NUT server (2–300) | `15` |
46
+ | **Username** | NUT username (optional — required for commands and writable variables) | — |
47
+ | **Password** | NUT password | — |
48
+ | **Use TLS (STARTTLS)** | Encrypt the connection via STARTTLS | off |
49
+ | **Require valid certificate** | Reject self-signed/invalid certificates (only shown when TLS is on) | off |
50
+
51
+ Use the **Test Connection** button to verify the server is reachable and see discovered UPS devices.
52
+
53
+ **About TLS:** enabling STARTTLS encrypts the connection so your NUT username and password are no longer sent in clear text over the network. With the default settings it protects against passive eavesdropping, but **not** against an active man-in-the-middle, because most NUT servers use a self-signed certificate that cannot be verified. For full protection, configure a certificate the client can validate on the NUT server and enable **Require valid certificate**. The NUT server must be built with TLS support (`upsd` with `CERTFILE`/`CERTPATH`); otherwise the connection test reports a TLS error.
54
+
55
+ ### Advanced
56
+
57
+ | Option | Description | Default |
58
+ | ----------------------- | --------------------------------------------------- | ------- |
59
+ | **Command Timeout (s)** | Timeout for individual NUT protocol commands (1–30) | `5` |
60
+ | **Enable Commands** | Allow sending instant commands (INSTCMD) to the UPS | off |
61
+ | **Enable SET VAR** | Allow changing writable UPS variables | off |
62
+
63
+ Both command features require a NUT user with appropriate permissions configured on the NUT server.
64
+
65
+ ---
66
+
67
+ ## State Tree
68
+
69
+ States are organized by NUT domain. The exact set of states depends on what your UPS driver reports.
70
+
71
+ ```
72
+ nut2.0.
73
+ ├── info.connection — Connection to NUT server (bool)
74
+ └── {ups_name}/ — Device (e.g. "ups0")
75
+ ├── info/
76
+ │ └── reachable — UPS responds / data is fresh (bool)
77
+ ├── battery/
78
+ │ ├── battery.charge — Battery level (%, number)
79
+ │ ├── battery.charge-low — Low battery threshold (%)
80
+ │ ├── battery.runtime — Remaining runtime (s)
81
+ │ ├── battery.type — Battery chemistry (string)
82
+ │ └── ...
83
+ ├── device/
84
+ │ ├── device.mfr — Manufacturer (string)
85
+ │ ├── device.model — Model name (string)
86
+ │ ├── device.serial — Serial number (string)
87
+ │ └── ...
88
+ ├── driver/
89
+ │ ├── driver.name — NUT driver name
90
+ │ ├── driver.version — Driver version
91
+ │ └── ...
92
+ ├── input/
93
+ │ ├── input.voltage — Input voltage (V, number)
94
+ │ ├── input.frequency — Input frequency (Hz, number)
95
+ │ └── ...
96
+ ├── output/
97
+ │ ├── output.voltage — Output voltage (V, number)
98
+ │ ├── output.frequency — Output frequency (Hz, number)
99
+ │ └── ...
100
+ ├── ups/
101
+ │ ├── ups.load — UPS load (%, number)
102
+ │ ├── ups.power — Apparent power (VA, number)
103
+ │ ├── ups.realpower — Real power (W, number)
104
+ │ ├── ups.status — Raw status string (e.g. "OL CHRG")
105
+ │ └── ...
106
+ ├── status/ — Parsed status flags
107
+ │ ├── raw — Original status string
108
+ │ ├── display — Human-readable status (e.g. "Online, Charging")
109
+ │ ├── severity — 0=OK, 1=Info, 2=Warning, 3=Critical, 4=Emergency
110
+ │ ├── online — On line power (bool)
111
+ │ ├── onBattery — Running on battery (bool)
112
+ │ ├── lowBattery — Battery is low (bool)
113
+ │ ├── charging — Battery is charging (bool)
114
+ │ ├── discharging — Battery is discharging (bool)
115
+ │ ├── replaceBattery — Battery needs replacement (bool)
116
+ │ ├── overloaded — UPS is overloaded (bool)
117
+ │ ├── forcedShutdown — Forced shutdown in progress (bool)
118
+ │ ├── alarm — Alarm active (bool)
119
+ │ ├── ecoMode — ECO / high efficiency mode (bool)
120
+ │ ├── testing — Self-test in progress (bool)
121
+ │ ├── overheat — UPS overheated (bool)
122
+ │ └── ... — (19 flags total)
123
+ └── commands/ — Instant commands (if enabled)
124
+ ├── beeper-enable — Button: enable beeper
125
+ ├── beeper-disable — Button: disable beeper
126
+ ├── test-battery-start — Button: start battery test
127
+ └── ... — (from LIST CMD)
128
+ ```
129
+
130
+ > **State IDs:** the first dot in a NUT variable name is the channel separator; any further dots become dashes. So `battery.charge.low` is stored as `battery.charge-low`, and the instant command `test.battery.start` becomes `commands.test-battery-start`.
131
+
132
+ ### Status Severity Levels
133
+
134
+ | Level | Meaning | Typical Flags |
135
+ | ----- | --------- | --------------------------- |
136
+ | 0 | OK | OL, OL CHRG, OL HB |
137
+ | 1 | Info | TRIM, BOOST, CAL |
138
+ | 2 | Warning | OB (without LB), RB, BYPASS |
139
+ | 3 | Critical | OB + LB |
140
+ | 4 | Emergency | FSD |
141
+
142
+ ---
143
+
144
+ ## Troubleshooting
145
+
146
+ ### Connection failed
147
+
148
+ - Verify the NUT server is reachable from the ioBroker host: `nc -zv <host> 3493`
149
+ - Check firewall rules for TCP port 3493
150
+ - Use the Test Connection button in the admin UI
151
+
152
+ ### Commands not working
153
+
154
+ - Ensure **Enable Commands** is checked in the Advanced tab
155
+ - A NUT username and password with `instcmds` permission must be configured
156
+ - Check the NUT server's `upsd.users` configuration
157
+
158
+ ### Writable variables not working
159
+
160
+ - Ensure **Enable SET VAR** is checked in the Advanced tab
161
+ - The NUT user needs `actions = SET` permission on the NUT server
162
+
163
+ ### States not updating
164
+
165
+ - Check `info.connection` — if `false`, the TCP connection is down
166
+ - Check the ioBroker log for NUT error codes (e.g. `DATA-STALE` means the UPS driver lost contact)
167
+ - Verify the poll interval is appropriate for your setup
168
+
169
+ ---
170
+
171
+ ## Changelog
172
+
173
+ <!--
174
+ Placeholder for the next version (at the beginning of the line):
175
+ ### **WORK IN PROGRESS**
176
+ -->
177
+ ### 0.5.2 (2026-07-26)
178
+
179
+ - The poll interval can now go down to 2 seconds — below that the NUT driver itself has no new readings to give.
180
+
181
+ ### 0.5.1 (2026-07-13)
182
+
183
+ - Writable yes/no UPS settings (e.g. automatic restart after power returns) can now actually be changed from ioBroker — previously toggling them was silently rejected by the NUT server.
184
+
185
+ ### 0.5.0 (2026-07-02)
186
+
187
+ - Device readings now have correct types instead of plain text: yes/no fields become booleans, numeric fields carry their unit, and status, severity and enum fields show a readable label.
188
+ - The admin "Test connection" button now reports the real result — a clear error, or the list of discovered UPS devices — instead of always showing "Ok".
189
+ - More reliable on slow or flaky networks: no needless drop-and-reconnect, a stalled connection now fails fast instead of hanging, and the adapter recovers instead of getting stuck at startup.
190
+ - Clearer status labels: the OFF flag now reads "Off" instead of "Offline", and the on-line flag "On line power" instead of "Online" — so neither is mistaken for a lost network connection.
191
+ - When variable writing (SET VAR) is disabled, readings are shown as read-only instead of looking editable but silently ignoring your changes.
192
+
193
+ ### 0.4.5 (2026-06-21)
194
+
195
+ - With login credentials configured, a NUT server that has more than one UPS no longer leaves the adapter offline (yellow). Multi-UPS setups with authentication now connect and poll correctly.
196
+
197
+ ### 0.4.4 (2026-06-21)
198
+
199
+ - The network interface setting now offers an "all interfaces" choice and uses it by default, so the adapter binds correctly on multi-homed servers without manual configuration.
200
+ - A reading from the NUT server that is not a clean number is no longer stored as a wrong number — non-numeric text stays text, and a numeric field with garbage is skipped and warned once.
201
+ - The device name now corrects itself once manufacturer and model become available after the first reading, instead of staying stuck on an earlier placeholder name.
202
+ - A UPS variable whose name contains no dot, such as a bare ALARM, is now created as a proper data point instead of an invalid object.
203
+
204
+ [Older changelogs can be found there](CHANGELOG_OLD.md)
205
+
206
+ ## Credits
207
+
208
+ NUT support in ioBroker goes back to [Apollon77](https://github.com/Apollon77) — his `iobroker.nut` adapter brought the Network UPS Tools protocol to the platform in 2016 and served it until 2025. This adapter is an independent rewrite and shares no code with it.
209
+
210
+ ---
211
+
212
+ ## Support
213
+
214
+ - [ioBroker Forum](https://forum.iobroker.net/)
215
+ - [GitHub Issues](https://github.com/krobipd/ioBroker.nut2/issues)
216
+
217
+ ### Support Development
218
+
219
+ This adapter is free and open source. If you find it useful, consider buying me a coffee:
220
+
221
+ [![Ko-fi](https://img.shields.io/badge/Ko--fi-Support-ff5e5b?style=for-the-badge&logo=ko-fi)](https://ko-fi.com/krobipd)
222
+ [![PayPal](https://img.shields.io/badge/Donate-PayPal-blue.svg?style=for-the-badge)](https://paypal.me/krobipd)
223
+
224
+ ---
225
+
226
+ ## License
227
+
228
+ MIT License
229
+
230
+ Copyright (c) 2026 krobi <krobi@power-dreams.com>
231
+
232
+ Permission is hereby granted, free of charge, to any person obtaining a copy
233
+ of this software and associated documentation files (the "Software"), to deal
234
+ in the Software without restriction, including without limitation the rights
235
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
236
+ copies of the Software, and to permit persons to whom the Software is
237
+ furnished to do so, subject to the following conditions:
238
+
239
+ The above copyright notice and this permission notice shall be included in all
240
+ copies or substantial portions of the Software.
241
+
242
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
243
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
244
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
245
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
246
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
247
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
248
+ SOFTWARE.
249
+
250
+ _Developed with assistance from Claude.ai_
@@ -0,0 +1,150 @@
1
+ {
2
+ "tab_connection": "Verbindung",
3
+ "tab_advanced": "Erweitert",
4
+ "label_host": "NUT-Server-Host",
5
+ "help_host": "Hostname oder IP-Adresse des NUT-Servers (z. B. 192.168.1.100)",
6
+ "label_port": "Port",
7
+ "label_networkInterface": "Netzwerkschnittstelle",
8
+ "tooltip_networkInterface": "Bestimmte Netzwerkschnittstelle für ausgehende Verbindungen wählen (optional)",
9
+ "label_pollInterval": "Abfrageintervall (s)",
10
+ "help_pollInterval": "Wie oft der NUT-Server abgefragt wird (2–300 Sekunden)",
11
+ "label_username": "Benutzername",
12
+ "help_username": "NUT-Benutzername (optional — erforderlich für Befehle und beschreibbare Variablen)",
13
+ "label_password": "Passwort",
14
+ "btn_checkConnection": "Verbindung testen",
15
+ "label_commandTimeout": "Befehlstimeout (s)",
16
+ "help_commandTimeout": "Timeout für einzelne NUT-Befehle (1–30 Sekunden)",
17
+ "label_enableCommands": "Sofortbefehle aktivieren",
18
+ "help_enableCommands": "Sofortbefehle (INSTCMD) an die USV senden — erfordert Authentifizierung",
19
+ "label_enableSetVar": "Beschreibbare Variablen aktivieren",
20
+ "help_enableSetVar": "Beschreibbare USV-Variablen ändern (SET VAR) — erfordert Authentifizierung",
21
+ "supportHeader": "Unterstützung",
22
+ "aboutInfo": "ioBroker.nut2 überwacht USV-Geräte über das Network UPS Tools (NUT) Protokoll. Alle USV-Geräte eines NUT-Servers werden automatisch erkannt.",
23
+ "donateKofi": "Unterstützen auf Ko-fi",
24
+ "donatePaypal": "Spenden via PayPal",
25
+ "channelInfo": "Adapter-Informationen",
26
+ "connectionStatus": "Verbindungsstatus",
27
+ "channelBattery": "Batterie",
28
+ "channelDevice": "Gerät",
29
+ "channelDriver": "Treiber",
30
+ "channelInput": "Eingangsleistung",
31
+ "channelOutput": "Ausgangsleistung",
32
+ "channelUps": "USV",
33
+ "channelOutlet": "Ausgänge",
34
+ "channelAmbient": "Umgebungssensoren",
35
+ "channelStatus": "Status-Flags",
36
+ "channelCommands": "Befehle",
37
+ "statusRaw": "Rohstatus",
38
+ "statusSeverity": "Schweregrad",
39
+ "statusDisplay": "Statusanzeige",
40
+ "upsReachable": "Erreichbar",
41
+ "channelUpsInfo": "Information",
42
+ "flagOnline": "Netzbetrieb",
43
+ "flagOnBattery": "Auf Batterie",
44
+ "flagLowBattery": "Batterie schwach",
45
+ "flagHighBattery": "Batterie voll",
46
+ "flagReplaceBattery": "Batterie ersetzen",
47
+ "flagCharging": "Wird geladen",
48
+ "flagDischarging": "Wird entladen",
49
+ "flagBypass": "Bypass aktiv",
50
+ "flagCalibrating": "Kalibrierung",
51
+ "flagOff": "Aus",
52
+ "flagOverloaded": "Überlastet",
53
+ "flagTrimming": "Spannungsreduzierung",
54
+ "flagBoosting": "Spannungserhöhung",
55
+ "flagForcedShutdown": "Erzwungene Abschaltung",
56
+ "flagAlarm": "Alarm",
57
+ "cmdBeeperDisable": "Signalton deaktivieren",
58
+ "cmdBeeperEnable": "Signalton aktivieren",
59
+ "cmdBeeperMute": "Signalton stumm",
60
+ "cmdLoadOff": "Last abschalten",
61
+ "cmdLoadOn": "Last einschalten",
62
+ "cmdLoadOffDelay": "Last abschalten (verzögert)",
63
+ "cmdLoadOnDelay": "Last einschalten (verzögert)",
64
+ "cmdShutdownReturn": "Abschalten und zurückkehren",
65
+ "cmdShutdownStayoff": "Abschalten und aus bleiben",
66
+ "cmdShutdownStop": "Abschaltung stoppen",
67
+ "cmdShutdownReboot": "USV neustarten",
68
+ "cmdTestBatteryStart": "Batterietest starten",
69
+ "cmdTestBatteryStop": "Batterietest stoppen",
70
+ "cmdCalibrateStart": "Kalibrierung starten",
71
+ "cmdCalibrateStop": "Kalibrierung stoppen",
72
+ "battery.charge": "Ladung",
73
+ "battery.charge.low": "Schwellwert niedrige Ladung",
74
+ "battery.runtime": "Verbleibende Laufzeit",
75
+ "battery.type": "Batterietyp",
76
+ "battery.voltage": "Batteriespannung",
77
+ "battery.temperature": "Batterietemperatur",
78
+ "battery.capacity": "Batteriekapazität",
79
+ "battery.charger.status": "Ladestatus",
80
+ "device.mfr": "Hersteller",
81
+ "device.model": "Modell",
82
+ "device.serial": "Seriennummer",
83
+ "device.type": "Gerätetyp",
84
+ "driver.name": "Treibername",
85
+ "driver.version": "Treiberversion",
86
+ "driver.version.data": "Treiber-Datenversion",
87
+ "driver.version.internal": "Interne Treiberversion",
88
+ "driver.parameter.pollfreq": "Abfragefrequenz",
89
+ "driver.parameter.pollinterval": "Abfrageintervall",
90
+ "driver.parameter.port": "Anschluss",
91
+ "driver.parameter.synchronous": "Synchroner Modus",
92
+ "driver.flag.ignorelb": "Niedrige Batterie ignorieren",
93
+ "driver.version.usb": "USB-Bibliotheksversion",
94
+ "input.voltage": "Eingangsspannung",
95
+ "input.frequency": "Eingangsfrequenz",
96
+ "input.transfer.high": "Obere Umschaltspannung",
97
+ "input.transfer.low": "Untere Umschaltspannung",
98
+ "input.voltage.extended": "Erweiterter Spannungsbereich",
99
+ "output.voltage": "Ausgangsspannung",
100
+ "output.frequency": "Ausgangsfrequenz",
101
+ "output.voltage.nominal": "Nominale Ausgangsspannung",
102
+ "output.frequency.nominal": "Nominale Ausgangsfrequenz",
103
+ "output.current": "Ausgangsstrom",
104
+ "ups.status": "USV-Status",
105
+ "ups.load": "Last",
106
+ "ups.power": "Scheinleistung",
107
+ "ups.realpower": "Wirkleistung",
108
+ "ups.power.nominal": "Nennleistung",
109
+ "ups.temperature": "USV-Temperatur",
110
+ "ups.delay.shutdown": "Abschaltverzögerung",
111
+ "ups.delay.start": "Startverzögerung",
112
+ "ups.timer.shutdown": "Abschalttimer",
113
+ "ups.timer.start": "Starttimer",
114
+ "ups.firmware": "Firmware-Version",
115
+ "ups.beeper.status": "Signaltonstatus",
116
+ "ups.mfr": "USV-Hersteller",
117
+ "ups.model": "USV-Modell",
118
+ "ups.serial": "USV-Seriennummer",
119
+ "ups.vendorid": "Hersteller-ID",
120
+ "ups.productid": "Produkt-ID",
121
+ "outlet.desc": "Steckdosenbeschreibung",
122
+ "outlet.id": "Steckdosen-ID",
123
+ "outlet.switchable": "Schaltbar",
124
+ "outlet.status": "Steckdosenstatus",
125
+ "ambient.temperature": "Umgebungstemperatur",
126
+ "ambient.humidity": "Umgebungsfeuchtigkeit",
127
+ "flagWaiting": "Wartet",
128
+ "flagEcoMode": "ECO-Modus",
129
+ "label_useTls": "TLS verwenden (STARTTLS)",
130
+ "help_useTls": "Verbindung per STARTTLS verschlüsseln — empfohlen, wenn Benutzername und Passwort gesendet werden",
131
+ "label_tlsRejectUnauthorized": "Gültiges Zertifikat erfordern",
132
+ "help_tlsRejectUnauthorized": "Selbstsignierte oder ungültige Zertifikate ablehnen. Bei typischem selbstsigniertem NUT-Server aus lassen; für Schutz vor Man-in-the-Middle aktivieren",
133
+ "cmdShutdownDefault": "Standard-Abschaltung",
134
+ "cmdShutdownRebootGraceful": "Kontrollierter Neustart",
135
+ "cmdTestPanelStart": "Anzeigetest starten",
136
+ "cmdTestPanelStop": "Anzeigetest stoppen",
137
+ "cmdTestFailureStart": "Stromausfalltest starten",
138
+ "cmdTestFailureStop": "Stromausfalltest stoppen",
139
+ "cmdTestBatteryStartQuick": "Schnellen Batterietest starten",
140
+ "cmdTestBatteryStartLow": "Batterietest bis Entladung",
141
+ "cmdTestBatteryStartDeep": "Tiefen Batterietest starten",
142
+ "cmdTestSystemStart": "Systemtest starten",
143
+ "cmdBypassStart": "In Bypass-Modus schalten",
144
+ "cmdBypassStop": "Bypass-Modus verlassen",
145
+ "cmdResetInputMinmax": "Eingangs-Min/Max zurücksetzen",
146
+ "cmdResetWatchdog": "Watchdog-Timer zurücksetzen",
147
+ "cmdBeeperToggle": "Signalton umschalten",
148
+ "flagTesting": "Test läuft",
149
+ "flagOverheat": "Überhitzt"
150
+ }
@@ -0,0 +1,150 @@
1
+ {
2
+ "tab_connection": "Connection",
3
+ "tab_advanced": "Advanced",
4
+ "label_host": "NUT server host",
5
+ "help_host": "Hostname or IP address of the NUT server (e.g. 192.168.1.100)",
6
+ "label_port": "Port",
7
+ "label_networkInterface": "Network interface",
8
+ "tooltip_networkInterface": "Select a specific network interface for outgoing connections (optional)",
9
+ "label_pollInterval": "Poll interval (s)",
10
+ "help_pollInterval": "How often to query the NUT server (2–300 seconds)",
11
+ "label_username": "Username",
12
+ "help_username": "NUT username (optional — required for commands and writable variables)",
13
+ "label_password": "Password",
14
+ "btn_checkConnection": "Test connection",
15
+ "label_commandTimeout": "Command timeout (s)",
16
+ "help_commandTimeout": "Timeout for individual NUT commands (1–30 seconds)",
17
+ "label_enableCommands": "Enable instant commands",
18
+ "help_enableCommands": "Allow sending instant commands (INSTCMD) to the UPS — requires authentication",
19
+ "label_enableSetVar": "Enable writable variables",
20
+ "help_enableSetVar": "Allow changing writable UPS variables (SET VAR) — requires authentication",
21
+ "supportHeader": "Support",
22
+ "aboutInfo": "ioBroker.nut2 monitors UPS devices via the Network UPS Tools (NUT) protocol. All UPS devices connected to a NUT server are automatically discovered.",
23
+ "donateKofi": "Support on Ko-fi",
24
+ "donatePaypal": "Donate via PayPal",
25
+ "channelInfo": "Adapter information",
26
+ "connectionStatus": "Connection status",
27
+ "channelBattery": "Battery",
28
+ "channelDevice": "Device",
29
+ "channelDriver": "Driver",
30
+ "channelInput": "Input power",
31
+ "channelOutput": "Output power",
32
+ "channelUps": "UPS",
33
+ "channelOutlet": "Outlets",
34
+ "channelAmbient": "Ambient sensors",
35
+ "channelStatus": "Status flags",
36
+ "channelCommands": "Commands",
37
+ "statusRaw": "Raw status",
38
+ "statusSeverity": "Severity level",
39
+ "statusDisplay": "Status display",
40
+ "upsReachable": "Reachable",
41
+ "channelUpsInfo": "Information",
42
+ "flagOnline": "On line power",
43
+ "flagOnBattery": "On battery",
44
+ "flagLowBattery": "Low battery",
45
+ "flagHighBattery": "High battery",
46
+ "flagReplaceBattery": "Replace battery",
47
+ "flagCharging": "Charging",
48
+ "flagDischarging": "Discharging",
49
+ "flagBypass": "Bypass active",
50
+ "flagCalibrating": "Calibrating",
51
+ "flagOff": "Off",
52
+ "flagOverloaded": "Overloaded",
53
+ "flagTrimming": "Trimming voltage",
54
+ "flagBoosting": "Boosting voltage",
55
+ "flagForcedShutdown": "Forced shutdown",
56
+ "flagAlarm": "Alarm",
57
+ "cmdBeeperDisable": "Disable beeper",
58
+ "cmdBeeperEnable": "Enable beeper",
59
+ "cmdBeeperMute": "Mute beeper",
60
+ "cmdLoadOff": "Turn off load",
61
+ "cmdLoadOn": "Turn on load",
62
+ "cmdLoadOffDelay": "Turn off load (delayed)",
63
+ "cmdLoadOnDelay": "Turn on load (delayed)",
64
+ "cmdShutdownReturn": "Shutdown and return",
65
+ "cmdShutdownStayoff": "Shutdown and stay off",
66
+ "cmdShutdownStop": "Stop shutdown",
67
+ "cmdShutdownReboot": "Reboot UPS",
68
+ "cmdTestBatteryStart": "Start battery test",
69
+ "cmdTestBatteryStop": "Stop battery test",
70
+ "cmdCalibrateStart": "Start calibration",
71
+ "cmdCalibrateStop": "Stop calibration",
72
+ "battery.charge": "Charge",
73
+ "battery.charge.low": "Low charge threshold",
74
+ "battery.runtime": "Runtime remaining",
75
+ "battery.type": "Battery type",
76
+ "battery.voltage": "Battery voltage",
77
+ "battery.temperature": "Battery temperature",
78
+ "battery.capacity": "Battery capacity",
79
+ "battery.charger.status": "Charger status",
80
+ "device.mfr": "Manufacturer",
81
+ "device.model": "Model",
82
+ "device.serial": "Serial number",
83
+ "device.type": "Device type",
84
+ "driver.name": "Driver name",
85
+ "driver.version": "Driver version",
86
+ "driver.version.data": "Driver data version",
87
+ "driver.version.internal": "Driver internal version",
88
+ "driver.parameter.pollfreq": "Poll frequency",
89
+ "driver.parameter.pollinterval": "Poll interval",
90
+ "driver.parameter.port": "Port",
91
+ "driver.parameter.synchronous": "Synchronous mode",
92
+ "driver.flag.ignorelb": "Ignore low battery",
93
+ "driver.version.usb": "USB library version",
94
+ "input.voltage": "Input voltage",
95
+ "input.frequency": "Input frequency",
96
+ "input.transfer.high": "High transfer voltage",
97
+ "input.transfer.low": "Low transfer voltage",
98
+ "input.voltage.extended": "Extended voltage range",
99
+ "output.voltage": "Output voltage",
100
+ "output.frequency": "Output frequency",
101
+ "output.voltage.nominal": "Nominal output voltage",
102
+ "output.frequency.nominal": "Nominal output frequency",
103
+ "output.current": "Output current",
104
+ "ups.status": "UPS status",
105
+ "ups.load": "Load",
106
+ "ups.power": "Apparent power",
107
+ "ups.realpower": "Real power",
108
+ "ups.power.nominal": "Nominal power",
109
+ "ups.temperature": "UPS temperature",
110
+ "ups.delay.shutdown": "Shutdown delay",
111
+ "ups.delay.start": "Start delay",
112
+ "ups.timer.shutdown": "Shutdown timer",
113
+ "ups.timer.start": "Start timer",
114
+ "ups.firmware": "Firmware version",
115
+ "ups.beeper.status": "Beeper status",
116
+ "ups.mfr": "UPS manufacturer",
117
+ "ups.model": "UPS model",
118
+ "ups.serial": "UPS serial number",
119
+ "ups.vendorid": "Vendor ID",
120
+ "ups.productid": "Product ID",
121
+ "outlet.desc": "Outlet description",
122
+ "outlet.id": "Outlet ID",
123
+ "outlet.switchable": "Switchable",
124
+ "outlet.status": "Outlet status",
125
+ "ambient.temperature": "Ambient temperature",
126
+ "ambient.humidity": "Ambient humidity",
127
+ "flagWaiting": "Waiting",
128
+ "flagEcoMode": "ECO mode",
129
+ "label_useTls": "Use TLS (STARTTLS)",
130
+ "help_useTls": "Encrypt the connection via STARTTLS — recommended when sending a username and password",
131
+ "label_tlsRejectUnauthorized": "Require valid certificate",
132
+ "help_tlsRejectUnauthorized": "Reject self-signed or invalid certificates. Leave off for a typical self-signed NUT server; enable for man-in-the-middle protection",
133
+ "cmdShutdownDefault": "Default shutdown",
134
+ "cmdShutdownRebootGraceful": "Graceful reboot",
135
+ "cmdTestPanelStart": "Start panel test",
136
+ "cmdTestPanelStop": "Stop panel test",
137
+ "cmdTestFailureStart": "Start power-failure test",
138
+ "cmdTestFailureStop": "Stop power-failure test",
139
+ "cmdTestBatteryStartQuick": "Start quick battery test",
140
+ "cmdTestBatteryStartLow": "Battery test until low",
141
+ "cmdTestBatteryStartDeep": "Start deep battery test",
142
+ "cmdTestSystemStart": "Start system test",
143
+ "cmdBypassStart": "Switch to bypass mode",
144
+ "cmdBypassStop": "Leave bypass mode",
145
+ "cmdResetInputMinmax": "Reset input min/max",
146
+ "cmdResetWatchdog": "Reset watchdog timer",
147
+ "cmdBeeperToggle": "Toggle beeper",
148
+ "flagTesting": "Testing",
149
+ "flagOverheat": "Overheated"
150
+ }