iobroker.clage-dsx 0.0.1 → 0.0.6
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 +104 -65
- package/README_DE.md +102 -57
- package/admin/jsonConfig.json +223 -0
- package/io-package.json +140 -102
- package/lib/adapter-config.d.ts +21 -19
- package/main.js +823 -495
- package/package.json +22 -24
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
- package/.github/workflows/test-and-release.yml +0 -155
- package/.vscode/extensions.json +0 -5
- package/.vscode/settings.json +0 -3
- package/CLAGE HomeServer API v1.3.4.pdf +0 -0
- package/admin/admin.d.ts +0 -93
- package/admin/index_m.html +0 -105
- package/admin/style.css +0 -32
- package/admin/tsconfig.json +0 -9
- package/admin/words.js +0 -65
- package/connektion.md +0 -22
- package/gulpfile.js +0 -337
- package/lib/states.js +0 -0
- package/lib/tools.js +0 -99
- package/main.test.js +0 -30
- package/test/integration.js +0 -5
- package/test/mocha.setup.js +0 -14
- package/test/mocharc.custom.json +0 -10
- package/test/package.js +0 -5
- package/test/tsconfig.json +0 -9
- package/test/unit.js +0 -5
- package/tsconfig.check.json +0 -15
- package/tsconfig.json +0 -39
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c)
|
|
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 TheBam <elektrobam@gmx.de>
|
|
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,65 +1,104 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
[
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/iobroker.clage-dsx)
|
|
6
|
+
[](https://www.npmjs.com/package/iobroker.clage-dsx)
|
|
7
|
+
[](https://github.com/TheBam1990/ioBroker.clage-dsx/actions/workflows/test-and-release.yml)
|
|
8
|
+
|
|
9
|
+
[Deutsche Dokumentation](README_DE.md)
|
|
10
|
+
|
|
11
|
+
## Description
|
|
12
|
+
|
|
13
|
+
This adapter connects ioBroker to a local [CLAGE](https://www.clage.com/) Home Server and its registered instantaneous water heaters. Communication uses the HTTPS API in the local network; no cloud service is required.
|
|
14
|
+
|
|
15
|
+
The implementation is based on the included [CLAGE Home Server API specification v1.3.4](CLAGE%20HomeServer%20API%20v1.3.4.pdf).
|
|
16
|
+
|
|
17
|
+
## Requirements
|
|
18
|
+
|
|
19
|
+
- ioBroker with Node.js 22 or newer
|
|
20
|
+
- CLAGE Home Server reachable from the ioBroker host
|
|
21
|
+
- Home Server API user name and password
|
|
22
|
+
- HTTPS access to the Home Server
|
|
23
|
+
|
|
24
|
+
## Configuration
|
|
25
|
+
|
|
26
|
+
Open the instance settings and enter:
|
|
27
|
+
|
|
28
|
+
1. **CLAGE Home Server IP address**, for example `192.168.2.35` (without `https://`)
|
|
29
|
+
2. **API user name**
|
|
30
|
+
3. **API password**
|
|
31
|
+
|
|
32
|
+
All three fields are required. The historical native configuration key for the user name is called `port`; this is retained for compatibility with existing installations.
|
|
33
|
+
|
|
34
|
+
The Home Server normally uses a self-signed TLS certificate. The adapter therefore accepts the local certificate when connecting directly to the configured device.
|
|
35
|
+
|
|
36
|
+
## Current functionality
|
|
37
|
+
|
|
38
|
+
For every registered CLAGE device, the adapter creates states for:
|
|
39
|
+
|
|
40
|
+
- identity, connection state, RSSI, LQI, API access mask and last radio activity
|
|
41
|
+
- setpoint, temperature limit, inlet/outlet temperatures and all four temperature presets
|
|
42
|
+
- flow, flow limit, valve position, raw and calculated power, heating state and errors
|
|
43
|
+
- firmware and serial numbers, power-unit information and operating-time counters
|
|
44
|
+
- total consumption plus the last draw-off cycle and consumption history as JSON
|
|
45
|
+
- current error plus error history as JSON
|
|
46
|
+
- Home Server version, identity, radio channel, address and advertised services
|
|
47
|
+
- all timers, both globally and filtered per device
|
|
48
|
+
|
|
49
|
+
Writable states:
|
|
50
|
+
|
|
51
|
+
- `Setpoint`: API value in tenths of a degree Celsius, e.g. `450` = 45.0 °C
|
|
52
|
+
- `Themperatur`: temperature in °C; retained with its historical spelling for compatibility
|
|
53
|
+
- `flowMax`: flow limit in tenths of a litre per minute; special API values include `253` (ECO) and `254` (AUTO)
|
|
54
|
+
- `Name`: device name
|
|
55
|
+
- `setup.flowMax`, `setup.loadShedding`, `setup.scaldProtection` and `setup.sound`
|
|
56
|
+
- `timers.createJson`, `timers.updateJson` and `timers.deleteId` for controlled timer management
|
|
57
|
+
|
|
58
|
+
`info.connection` indicates whether the Home Server is reachable and accepts the configured credentials.
|
|
59
|
+
|
|
60
|
+
The adapter checks the API access mask before writes. Setpoint changes are debounced by two seconds, active devices are refreshed more frequently, and the device list uses sequential HTTP long polling by default. Intervals, long polling and the consumption-history period (30 days by default) can be adjusted in the adapter configuration.
|
|
61
|
+
|
|
62
|
+
## Timer JSON
|
|
63
|
+
|
|
64
|
+
Create a timer by writing JSON such as the following to `timers.createJson`:
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
{"type":0,"weekdays":127,"start":"06:00","stop":"07:00","deviceId":"A001FF0034","setpoint":450}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
For updates, write the same structure including a numeric `id` to `timers.updateJson`. To delete one timer, write its numeric ID to `timers.deleteId`. Destructive bulk operations, device unregistering and radio-address changes are intentionally not exposed.
|
|
71
|
+
|
|
72
|
+
## Troubleshooting
|
|
73
|
+
|
|
74
|
+
- Verify that the IP address contains no protocol prefix or path.
|
|
75
|
+
- Verify the API credentials in the CLAGE Home Server configuration.
|
|
76
|
+
- Ensure that TCP port 443 is reachable from the ioBroker host.
|
|
77
|
+
- HTTP status `401` means invalid credentials; `403` means insufficient API permissions.
|
|
78
|
+
- A device can be registered but temporarily unavailable. The API reports this as `404`, `410` or a negative device error code.
|
|
79
|
+
|
|
80
|
+
## Changelog
|
|
81
|
+
|
|
82
|
+
### 0.0.6
|
|
83
|
+
|
|
84
|
+
- Added live temperatures, presets, valve position, calculated power and radio diagnostics
|
|
85
|
+
- Added setup, consumption and error history data
|
|
86
|
+
- Added permission-checked setup writes and timer management
|
|
87
|
+
- Added Home Server information, adaptive polling and sequential HTTP long polling
|
|
88
|
+
- Added configurable polling intervals
|
|
89
|
+
|
|
90
|
+
### 0.0.2
|
|
91
|
+
|
|
92
|
+
- Updated runtime dependencies for current ioBroker and Node.js versions
|
|
93
|
+
- Migrated the administration page to responsive JSON Config
|
|
94
|
+
- Added current ioBroker package metadata and CI tests for Node.js 22 and 24
|
|
95
|
+
|
|
96
|
+
### 0.0.1
|
|
97
|
+
|
|
98
|
+
- Initial release
|
|
99
|
+
|
|
100
|
+
## License
|
|
101
|
+
|
|
102
|
+
Copyright (c) 2026 TheBam <elektrobam@gmx.de>
|
|
103
|
+
|
|
104
|
+
MIT License. See [LICENSE](LICENSE).
|
package/README_DE.md
CHANGED
|
@@ -1,57 +1,102 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
[
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/iobroker.clage-dsx)
|
|
6
|
+
[](https://www.npmjs.com/package/iobroker.clage-dsx)
|
|
7
|
+
[](https://github.com/TheBam1990/ioBroker.clage-dsx/actions/workflows/test-and-release.yml)
|
|
8
|
+
|
|
9
|
+
## Beschreibung
|
|
10
|
+
|
|
11
|
+
Der Adapter verbindet ioBroker mit einem lokalen [CLAGE](https://www.clage.de/) Home Server und den dort angemeldeten Durchlauferhitzern. Die Kommunikation erfolgt über die HTTPS-API im lokalen Netzwerk; ein Cloud-Dienst wird nicht benötigt.
|
|
12
|
+
|
|
13
|
+
Grundlage ist die mitgelieferte [CLAGE Home Server API-Spezifikation v1.3.4](CLAGE%20HomeServer%20API%20v1.3.4.pdf).
|
|
14
|
+
|
|
15
|
+
## Voraussetzungen
|
|
16
|
+
|
|
17
|
+
- ioBroker mit Node.js 22 oder neuer
|
|
18
|
+
- Der CLAGE Home Server muss vom ioBroker-Host erreichbar sein
|
|
19
|
+
- Benutzername und Passwort eines Home-Server-API-Kontos
|
|
20
|
+
- HTTPS-Zugriff auf den Home Server
|
|
21
|
+
|
|
22
|
+
## Konfiguration
|
|
23
|
+
|
|
24
|
+
In den Einstellungen der Instanz werden drei Werte eingetragen:
|
|
25
|
+
|
|
26
|
+
1. **IP-Adresse des CLAGE Home Servers**, zum Beispiel `192.168.2.35` (ohne `https://`)
|
|
27
|
+
2. **API-Benutzername**
|
|
28
|
+
3. **API-Passwort**
|
|
29
|
+
|
|
30
|
+
Alle drei Felder sind erforderlich. Der historische native Konfigurationsschlüssel für den Benutzernamen heißt `port`; er bleibt zur Kompatibilität mit bestehenden Installationen erhalten.
|
|
31
|
+
|
|
32
|
+
Der Home Server verwendet normalerweise ein selbstsigniertes TLS-Zertifikat. Der Adapter akzeptiert dieses lokale Zertifikat bei der direkten Verbindung mit dem konfigurierten Gerät.
|
|
33
|
+
|
|
34
|
+
## Aktueller Funktionsumfang
|
|
35
|
+
|
|
36
|
+
Für jedes angemeldete CLAGE-Gerät legt der Adapter Datenpunkte an für:
|
|
37
|
+
|
|
38
|
+
- Identität, Verbindungsstatus, RSSI, LQI, API-Rechtemaske und letzte Funkaktivität
|
|
39
|
+
- Sollwert, Temperaturgrenze, Ein-/Auslauftemperatur und alle vier Temperaturspeicher
|
|
40
|
+
- Durchfluss, Durchflussgrenze, Ventilstellung, Rohwert und berechnete Leistung, Heizstatus und Fehler
|
|
41
|
+
- Firmware- und Seriennummern, Leistungsteilinformationen und Betriebszeitzähler
|
|
42
|
+
- Gesamtverbrauch sowie letzten Zapfvorgang und Verbrauchshistorie als JSON
|
|
43
|
+
- aktuellen Fehler und Fehlerhistorie als JSON
|
|
44
|
+
- Version, Identität, Funkkanal, Adresse und angebotene Dienste des Home Servers
|
|
45
|
+
- alle Timer, sowohl global als auch je Gerät gefiltert
|
|
46
|
+
|
|
47
|
+
Schreibbare Datenpunkte:
|
|
48
|
+
|
|
49
|
+
- `Setpoint`: API-Wert in Zehntelgrad, zum Beispiel `450` = 45,0 °C
|
|
50
|
+
- `Themperatur`: Temperatur in °C; die historische Schreibweise bleibt aus Kompatibilitätsgründen erhalten
|
|
51
|
+
- `flowMax`: Durchflussgrenze in 0,1 l/min; besondere API-Werte sind `253` (ECO) und `254` (AUTO)
|
|
52
|
+
- `Name`: Gerätename
|
|
53
|
+
- `setup.flowMax`, `setup.loadShedding`, `setup.scaldProtection` und `setup.sound`
|
|
54
|
+
- `timers.createJson`, `timers.updateJson` und `timers.deleteId` zur kontrollierten Timerverwaltung
|
|
55
|
+
|
|
56
|
+
`info.connection` zeigt an, ob der Home Server erreichbar ist und die eingetragenen Zugangsdaten akzeptiert.
|
|
57
|
+
|
|
58
|
+
Der Adapter prüft vor Schreibzugriffen die API-Rechtemaske. Sollwertänderungen werden zwei Sekunden gebündelt, aktive Geräte häufiger aktualisiert und die Geräteliste standardmäßig mit sequenziellem HTTP Long Polling abgefragt. Intervalle, Long Polling und der Zeitraum der Verbrauchshistorie (standardmäßig 30 Tage) sind in der Adapterkonfiguration einstellbar.
|
|
59
|
+
|
|
60
|
+
## Timer-JSON
|
|
61
|
+
|
|
62
|
+
Ein Timer kann durch Schreiben eines JSON wie diesem auf `timers.createJson` angelegt werden:
|
|
63
|
+
|
|
64
|
+
```json
|
|
65
|
+
{"type":0,"weekdays":127,"start":"06:00","stop":"07:00","deviceId":"A001FF0034","setpoint":450}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Für Änderungen wird derselbe Aufbau mit numerischer `id` auf `timers.updateJson` geschrieben. Zum Löschen eines einzelnen Timers wird dessen numerische ID auf `timers.deleteId` geschrieben. Gefährliche Sammeloperationen, das Abmelden von Geräten und Änderungen der Funkadresse werden bewusst nicht angeboten.
|
|
69
|
+
|
|
70
|
+
## Fehlerbehebung
|
|
71
|
+
|
|
72
|
+
- Die IP-Adresse darf kein Protokoll und keinen Pfad enthalten.
|
|
73
|
+
- API-Zugangsdaten in der Konfiguration des CLAGE Home Servers prüfen.
|
|
74
|
+
- TCP-Port 443 muss vom ioBroker-Host erreichbar sein.
|
|
75
|
+
- HTTP-Status `401` bedeutet ungültige Zugangsdaten; `403` bedeutet unzureichende API-Rechte.
|
|
76
|
+
- Ein Gerät kann angemeldet, aber vorübergehend nicht erreichbar sein. Die API meldet dies mit `404`, `410` oder einem negativen Gerätefehlercode.
|
|
77
|
+
|
|
78
|
+
## Changelog
|
|
79
|
+
|
|
80
|
+
### 0.0.6
|
|
81
|
+
|
|
82
|
+
- Live-Temperaturen, Temperaturspeicher, Ventilstellung, berechnete Leistung und Funkdiagnose ergänzt
|
|
83
|
+
- Geräteeinstellungen, Verbrauchs- und Fehlerhistorie ergänzt
|
|
84
|
+
- Rechtegeprüfte Schreibzugriffe auf Einstellungen und Timerverwaltung ergänzt
|
|
85
|
+
- Home-Server-Informationen, adaptive Abfrage und sequenzielles HTTP Long Polling ergänzt
|
|
86
|
+
- Abfrageintervalle konfigurierbar gemacht
|
|
87
|
+
|
|
88
|
+
### 0.0.2
|
|
89
|
+
|
|
90
|
+
- Laufzeitabhängigkeiten für aktuelle ioBroker- und Node.js-Versionen aktualisiert
|
|
91
|
+
- Administrationsoberfläche auf responsive JSON Config umgestellt
|
|
92
|
+
- Aktuelle ioBroker-Paketmetadaten und CI-Tests für Node.js 22 und 24 ergänzt
|
|
93
|
+
|
|
94
|
+
### 0.0.1
|
|
95
|
+
|
|
96
|
+
- Erstveröffentlichung
|
|
97
|
+
|
|
98
|
+
## Lizenz
|
|
99
|
+
|
|
100
|
+
Copyright (c) 2026 TheBam <elektrobam@gmx.de>
|
|
101
|
+
|
|
102
|
+
MIT-Lizenz. Siehe [LICENSE](LICENSE).
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "panel",
|
|
3
|
+
"i18n": false,
|
|
4
|
+
"items": {
|
|
5
|
+
"intro": {
|
|
6
|
+
"type": "infoBox",
|
|
7
|
+
"text": {
|
|
8
|
+
"en": "Enter the CLAGE Home Server address and its API credentials. All three fields are required.",
|
|
9
|
+
"de": "Adresse des CLAGE Home Servers und dessen API-Zugangsdaten eingeben. Alle drei Felder werden benoetigt."
|
|
10
|
+
},
|
|
11
|
+
"newLine": true,
|
|
12
|
+
"xs": 12
|
|
13
|
+
},
|
|
14
|
+
"adresse": {
|
|
15
|
+
"type": "ip",
|
|
16
|
+
"label": {
|
|
17
|
+
"en": "CLAGE Home Server IP address",
|
|
18
|
+
"de": "IP-Adresse des CLAGE Home Servers",
|
|
19
|
+
"ru": "IP-адрес CLAGE Home Server",
|
|
20
|
+
"pt": "Endereço IP do CLAGE Home Server",
|
|
21
|
+
"nl": "IP-adres van de CLAGE Home Server",
|
|
22
|
+
"fr": "Adresse IP du CLAGE Home Server",
|
|
23
|
+
"it": "Indirizzo IP del CLAGE Home Server",
|
|
24
|
+
"es": "Dirección IP del CLAGE Home Server",
|
|
25
|
+
"pl": "Adres IP serwera CLAGE Home Server",
|
|
26
|
+
"uk": "IP-адреса CLAGE Home Server",
|
|
27
|
+
"zh-cn": "CLAGE Home Server IP 地址"
|
|
28
|
+
},
|
|
29
|
+
"listenOnAllPorts": false,
|
|
30
|
+
"onlyIp4": true,
|
|
31
|
+
"noInternal": false,
|
|
32
|
+
"xs": 12,
|
|
33
|
+
"sm": 6,
|
|
34
|
+
"md": 6,
|
|
35
|
+
"lg": 6,
|
|
36
|
+
"xl": 6
|
|
37
|
+
},
|
|
38
|
+
"port": {
|
|
39
|
+
"type": "text",
|
|
40
|
+
"label": {
|
|
41
|
+
"en": "API user name",
|
|
42
|
+
"de": "API-Benutzername",
|
|
43
|
+
"ru": "Имя пользователя API",
|
|
44
|
+
"pt": "Nome de utilizador da API",
|
|
45
|
+
"nl": "API-gebruikersnaam",
|
|
46
|
+
"fr": "Nom d'utilisateur API",
|
|
47
|
+
"it": "Nome utente API",
|
|
48
|
+
"es": "Nombre de usuario de la API",
|
|
49
|
+
"pl": "Nazwa użytkownika API",
|
|
50
|
+
"uk": "Ім'я користувача API",
|
|
51
|
+
"zh-cn": "API 用户名"
|
|
52
|
+
},
|
|
53
|
+
"help": {
|
|
54
|
+
"en": "The historical configuration key is named port, but this value is the user name.",
|
|
55
|
+
"de": "Der historische Konfigurationsschluessel heisst port, der Wert ist jedoch der Benutzername.",
|
|
56
|
+
"ru": "Исторический ключ называется port, но это имя пользователя.",
|
|
57
|
+
"pt": "A chave histórica chama-se port, mas este valor é o nome de utilizador.",
|
|
58
|
+
"nl": "De historische sleutel heet port, maar deze waarde is de gebruikersnaam.",
|
|
59
|
+
"fr": "La clé historique s'appelle port, mais cette valeur est le nom d'utilisateur.",
|
|
60
|
+
"it": "La chiave storica si chiama port, ma questo valore è il nome utente.",
|
|
61
|
+
"es": "La clave histórica se llama port, pero este valor es el nombre de usuario.",
|
|
62
|
+
"pl": "Historyczny klucz nazywa się port, ale ta wartość jest nazwą użytkownika.",
|
|
63
|
+
"uk": "Історичний ключ називається port, але це ім'я користувача.",
|
|
64
|
+
"zh-cn": "历史配置键名为 port,但该值实际是用户名。"
|
|
65
|
+
},
|
|
66
|
+
"xs": 12,
|
|
67
|
+
"sm": 6,
|
|
68
|
+
"md": 6,
|
|
69
|
+
"lg": 6,
|
|
70
|
+
"xl": 6
|
|
71
|
+
},
|
|
72
|
+
"apiKey": {
|
|
73
|
+
"type": "password",
|
|
74
|
+
"label": {
|
|
75
|
+
"en": "API password",
|
|
76
|
+
"de": "API-Passwort",
|
|
77
|
+
"ru": "Пароль API",
|
|
78
|
+
"pt": "Palavra-passe da API",
|
|
79
|
+
"nl": "API-wachtwoord",
|
|
80
|
+
"fr": "Mot de passe API",
|
|
81
|
+
"it": "Password API",
|
|
82
|
+
"es": "Contraseña de la API",
|
|
83
|
+
"pl": "Hasło API",
|
|
84
|
+
"uk": "Пароль API",
|
|
85
|
+
"zh-cn": "API 密码"
|
|
86
|
+
},
|
|
87
|
+
"visible": true,
|
|
88
|
+
"xs": 12,
|
|
89
|
+
"sm": 6,
|
|
90
|
+
"md": 6,
|
|
91
|
+
"lg": 6,
|
|
92
|
+
"xl": 6
|
|
93
|
+
},
|
|
94
|
+
"advancedInfo": {
|
|
95
|
+
"type": "header",
|
|
96
|
+
"text": {
|
|
97
|
+
"en": "Polling",
|
|
98
|
+
"de": "Abfrageintervalle",
|
|
99
|
+
"ru": "Интервалы опроса",
|
|
100
|
+
"pt": "Intervalos de consulta",
|
|
101
|
+
"nl": "Polling-intervallen",
|
|
102
|
+
"fr": "Intervalles d'interrogation",
|
|
103
|
+
"it": "Intervalli di polling",
|
|
104
|
+
"es": "Intervalos de consulta",
|
|
105
|
+
"pl": "Interwały odpytywania",
|
|
106
|
+
"uk": "Інтервали опитування",
|
|
107
|
+
"zh-cn": "轮询间隔"
|
|
108
|
+
},
|
|
109
|
+
"size": 2,
|
|
110
|
+
"newLine": true,
|
|
111
|
+
"xs": 12
|
|
112
|
+
},
|
|
113
|
+
"activePollMs": {
|
|
114
|
+
"type": "number",
|
|
115
|
+
"label": {
|
|
116
|
+
"en": "Active-device interval (ms)",
|
|
117
|
+
"de": "Intervall bei Wasserfluss (ms)",
|
|
118
|
+
"ru": "Интервал активного устройства (мс)",
|
|
119
|
+
"pt": "Intervalo do dispositivo ativo (ms)",
|
|
120
|
+
"nl": "Interval actief apparaat (ms)",
|
|
121
|
+
"fr": "Intervalle appareil actif (ms)",
|
|
122
|
+
"it": "Intervallo dispositivo attivo (ms)",
|
|
123
|
+
"es": "Intervalo del dispositivo activo (ms)",
|
|
124
|
+
"pl": "Interwał aktywnego urządzenia (ms)",
|
|
125
|
+
"uk": "Інтервал активного пристрою (мс)",
|
|
126
|
+
"zh-cn": "活动设备间隔(毫秒)"
|
|
127
|
+
},
|
|
128
|
+
"min": 1000,
|
|
129
|
+
"xs": 12,
|
|
130
|
+
"sm": 6,
|
|
131
|
+
"md": 3,
|
|
132
|
+
"lg": 3,
|
|
133
|
+
"xl": 3
|
|
134
|
+
},
|
|
135
|
+
"idlePollMs": {
|
|
136
|
+
"type": "number",
|
|
137
|
+
"label": {
|
|
138
|
+
"en": "Idle-device interval (ms)",
|
|
139
|
+
"de": "Intervall im Ruhezustand (ms)",
|
|
140
|
+
"ru": "Интервал ожидания (мс)",
|
|
141
|
+
"pt": "Intervalo em repouso (ms)",
|
|
142
|
+
"nl": "Interval in rust (ms)",
|
|
143
|
+
"fr": "Intervalle au repos (ms)",
|
|
144
|
+
"it": "Intervallo inattivo (ms)",
|
|
145
|
+
"es": "Intervalo en reposo (ms)",
|
|
146
|
+
"pl": "Interwał bezczynności (ms)",
|
|
147
|
+
"uk": "Інтервал очікування (мс)",
|
|
148
|
+
"zh-cn": "空闲设备间隔(毫秒)"
|
|
149
|
+
},
|
|
150
|
+
"min": 5000,
|
|
151
|
+
"xs": 12,
|
|
152
|
+
"sm": 6,
|
|
153
|
+
"md": 3,
|
|
154
|
+
"lg": 3,
|
|
155
|
+
"xl": 3
|
|
156
|
+
},
|
|
157
|
+
"detailsPollMs": {
|
|
158
|
+
"type": "number",
|
|
159
|
+
"label": {
|
|
160
|
+
"en": "History/setup interval (ms)",
|
|
161
|
+
"de": "Intervall für Historie/Einstellungen (ms)",
|
|
162
|
+
"ru": "Интервал истории/настроек (мс)",
|
|
163
|
+
"pt": "Intervalo de histórico/configuração (ms)",
|
|
164
|
+
"nl": "Interval historie/instellingen (ms)",
|
|
165
|
+
"fr": "Intervalle historique/réglages (ms)",
|
|
166
|
+
"it": "Intervallo cronologia/impostazioni (ms)",
|
|
167
|
+
"es": "Intervalo de historial/ajustes (ms)",
|
|
168
|
+
"pl": "Interwał historii/ustawień (ms)",
|
|
169
|
+
"uk": "Інтервал історії/налаштувань (мс)",
|
|
170
|
+
"zh-cn": "历史/设置间隔(毫秒)"
|
|
171
|
+
},
|
|
172
|
+
"min": 60000,
|
|
173
|
+
"xs": 12,
|
|
174
|
+
"sm": 6,
|
|
175
|
+
"md": 3,
|
|
176
|
+
"lg": 3,
|
|
177
|
+
"xl": 3
|
|
178
|
+
},
|
|
179
|
+
"historyDays": {
|
|
180
|
+
"type": "number",
|
|
181
|
+
"label": {
|
|
182
|
+
"en": "Consumption history (days)",
|
|
183
|
+
"de": "Verbrauchshistorie (Tage)",
|
|
184
|
+
"ru": "История потребления (дни)",
|
|
185
|
+
"pt": "Histórico de consumo (dias)",
|
|
186
|
+
"nl": "Verbruiksgeschiedenis (dagen)",
|
|
187
|
+
"fr": "Historique de consommation (jours)",
|
|
188
|
+
"it": "Cronologia dei consumi (giorni)",
|
|
189
|
+
"es": "Historial de consumo (días)",
|
|
190
|
+
"pl": "Historia zużycia (dni)",
|
|
191
|
+
"uk": "Історія споживання (дні)",
|
|
192
|
+
"zh-cn": "用量历史(天)"
|
|
193
|
+
},
|
|
194
|
+
"min": 1,
|
|
195
|
+
"xs": 12,
|
|
196
|
+
"sm": 6,
|
|
197
|
+
"md": 3,
|
|
198
|
+
"lg": 3,
|
|
199
|
+
"xl": 3
|
|
200
|
+
},
|
|
201
|
+
"longPolling": {
|
|
202
|
+
"type": "checkbox",
|
|
203
|
+
"label": {
|
|
204
|
+
"en": "Use device-list long polling",
|
|
205
|
+
"de": "Long Polling für die Geräteliste verwenden",
|
|
206
|
+
"ru": "Использовать long polling списка устройств",
|
|
207
|
+
"pt": "Usar long polling da lista de dispositivos",
|
|
208
|
+
"nl": "Long polling voor apparatenlijst gebruiken",
|
|
209
|
+
"fr": "Utiliser le long polling de la liste des appareils",
|
|
210
|
+
"it": "Usa long polling per l'elenco dispositivi",
|
|
211
|
+
"es": "Usar long polling para la lista de dispositivos",
|
|
212
|
+
"pl": "Użyj long pollingu listy urządzeń",
|
|
213
|
+
"uk": "Використовувати long polling списку пристроїв",
|
|
214
|
+
"zh-cn": "使用设备列表长轮询"
|
|
215
|
+
},
|
|
216
|
+
"xs": 12,
|
|
217
|
+
"sm": 6,
|
|
218
|
+
"md": 3,
|
|
219
|
+
"lg": 3,
|
|
220
|
+
"xl": 3
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|