iobroker.clage-dsx 0.0.6 → 0.0.8
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/README.md +16 -11
- package/README_DE.md +9 -11
- package/admin/i18n/de.json +13 -0
- package/admin/i18n/en.json +13 -0
- package/admin/i18n/es.json +13 -0
- package/admin/i18n/fr.json +13 -0
- package/admin/i18n/it.json +13 -0
- package/admin/i18n/nl.json +13 -0
- package/admin/i18n/pl.json +13 -0
- package/admin/i18n/pt.json +13 -0
- package/admin/i18n/ru.json +13 -0
- package/admin/i18n/uk.json +13 -0
- package/admin/i18n/zh-cn.json +13 -0
- package/admin/jsonConfig.json +15 -135
- package/io-package.json +36 -10
- package/main.js +27 -16
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -26,11 +26,13 @@ The implementation is based on the included [CLAGE Home Server API specification
|
|
|
26
26
|
Open the instance settings and enter:
|
|
27
27
|
|
|
28
28
|
1. **CLAGE Home Server IP address**, for example `192.168.2.35` (without `https://`)
|
|
29
|
-
2. **API user name
|
|
30
|
-
3. **API password
|
|
29
|
+
2. **API user name**, for example `admin`
|
|
30
|
+
3. **API password**, for example `geheim`
|
|
31
31
|
|
|
32
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
33
|
|
|
34
|
+
The values `admin` and `geheim` are examples from the CLAGE API documentation. Use the API credentials configured on your own Home Server; do not use the example password unless it is actually configured there.
|
|
35
|
+
|
|
34
36
|
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
37
|
|
|
36
38
|
## Current functionality
|
|
@@ -79,6 +81,17 @@ For updates, write the same structure including a numeric `id` to `timers.update
|
|
|
79
81
|
|
|
80
82
|
## Changelog
|
|
81
83
|
|
|
84
|
+
### 0.0.8
|
|
85
|
+
|
|
86
|
+
- Fixed all findings from the ioBroker latest-repository review.
|
|
87
|
+
- Updated energy and timestamp state roles and clarified the legacy temperature state.
|
|
88
|
+
- Restricted setup writes to registered API fields and added safe polling upper limits.
|
|
89
|
+
- Corrected all adapter description translations.
|
|
90
|
+
|
|
91
|
+
### 0.0.7
|
|
92
|
+
|
|
93
|
+
- Corrected state roles for timestamps, version information and the numeric bus ID
|
|
94
|
+
|
|
82
95
|
### 0.0.6
|
|
83
96
|
|
|
84
97
|
- Added live temperatures, presets, valve position, calculated power and radio diagnostics
|
|
@@ -87,15 +100,7 @@ For updates, write the same structure including a numeric `id` to `timers.update
|
|
|
87
100
|
- Added Home Server information, adaptive polling and sequential HTTP long polling
|
|
88
101
|
- Added configurable polling intervals
|
|
89
102
|
|
|
90
|
-
|
|
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
|
|
103
|
+
[Older changelog entries](CHANGELOG_OLD.md)
|
|
99
104
|
|
|
100
105
|
## License
|
|
101
106
|
|
package/README_DE.md
CHANGED
|
@@ -24,11 +24,13 @@ Grundlage ist die mitgelieferte [CLAGE Home Server API-Spezifikation v1.3.4](CLA
|
|
|
24
24
|
In den Einstellungen der Instanz werden drei Werte eingetragen:
|
|
25
25
|
|
|
26
26
|
1. **IP-Adresse des CLAGE Home Servers**, zum Beispiel `192.168.2.35` (ohne `https://`)
|
|
27
|
-
2. **API-Benutzername
|
|
28
|
-
3. **API-Passwort
|
|
27
|
+
2. **API-Benutzername**, zum Beispiel `admin`
|
|
28
|
+
3. **API-Passwort**, zum Beispiel `geheim`
|
|
29
29
|
|
|
30
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
31
|
|
|
32
|
+
Die Werte `admin` und `geheim` sind Beispiele aus der CLAGE-API-Dokumentation. Es müssen die tatsächlich auf dem eigenen Home Server eingerichteten API-Zugangsdaten verwendet werden; das Beispielpasswort funktioniert nur, wenn es dort genauso konfiguriert wurde.
|
|
33
|
+
|
|
32
34
|
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
35
|
|
|
34
36
|
## Aktueller Funktionsumfang
|
|
@@ -77,6 +79,10 @@ Für Änderungen wird derselbe Aufbau mit numerischer `id` auf `timers.updateJso
|
|
|
77
79
|
|
|
78
80
|
## Changelog
|
|
79
81
|
|
|
82
|
+
### 0.0.7
|
|
83
|
+
|
|
84
|
+
- Datenpunktrollen für Zeitstempel, Versionsinformationen und die numerische Bus-ID korrigiert
|
|
85
|
+
|
|
80
86
|
### 0.0.6
|
|
81
87
|
|
|
82
88
|
- Live-Temperaturen, Temperaturspeicher, Ventilstellung, berechnete Leistung und Funkdiagnose ergänzt
|
|
@@ -85,15 +91,7 @@ Für Änderungen wird derselbe Aufbau mit numerischer `id` auf `timers.updateJso
|
|
|
85
91
|
- Home-Server-Informationen, adaptive Abfrage und sequenzielles HTTP Long Polling ergänzt
|
|
86
92
|
- Abfrageintervalle konfigurierbar gemacht
|
|
87
93
|
|
|
88
|
-
|
|
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
|
|
94
|
+
[Ältere Changelog-Einträge](CHANGELOG_OLD.md)
|
|
97
95
|
|
|
98
96
|
## Lizenz
|
|
99
97
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Enter the CLAGE Home Server address and its API credentials. All three fields are required.": "Adresse des CLAGE Home Servers und dessen API-Zugangsdaten eingeben. Alle drei Felder werden benötigt.",
|
|
3
|
+
"CLAGE Home Server IP address": "IP-Adresse des CLAGE Home Servers",
|
|
4
|
+
"API user name": "API-Benutzername",
|
|
5
|
+
"The historical configuration key is named port, but this value is the user name.": "Der historische Konfigurationsschlüssel heißt port, der Wert ist jedoch der Benutzername.",
|
|
6
|
+
"API password": "API-Passwort",
|
|
7
|
+
"Polling": "Abfrageintervalle",
|
|
8
|
+
"Active-device interval (ms)": "Intervall bei Wasserfluss (ms)",
|
|
9
|
+
"Idle-device interval (ms)": "Intervall im Ruhezustand (ms)",
|
|
10
|
+
"History/setup interval (ms)": "Intervall für Historie/Einstellungen (ms)",
|
|
11
|
+
"Consumption history (days)": "Verbrauchshistorie (Tage)",
|
|
12
|
+
"Use device-list long polling": "Long Polling für die Geräteliste verwenden"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Enter the CLAGE Home Server address and its API credentials. All three fields are required.": "Enter the CLAGE Home Server address and its API credentials. All three fields are required.",
|
|
3
|
+
"CLAGE Home Server IP address": "CLAGE Home Server IP address",
|
|
4
|
+
"API user name": "API user name",
|
|
5
|
+
"The historical configuration key is named port, but this value is the user name.": "The historical configuration key is named port, but this value is the user name.",
|
|
6
|
+
"API password": "API password",
|
|
7
|
+
"Polling": "Polling",
|
|
8
|
+
"Active-device interval (ms)": "Active-device interval (ms)",
|
|
9
|
+
"Idle-device interval (ms)": "Idle-device interval (ms)",
|
|
10
|
+
"History/setup interval (ms)": "History/setup interval (ms)",
|
|
11
|
+
"Consumption history (days)": "Consumption history (days)",
|
|
12
|
+
"Use device-list long polling": "Use device-list long polling"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Enter the CLAGE Home Server address and its API credentials. All three fields are required.": "Introduzca la dirección del CLAGE Home Server y sus credenciales de API. Los tres campos son obligatorios.",
|
|
3
|
+
"CLAGE Home Server IP address": "Dirección IP del CLAGE Home Server",
|
|
4
|
+
"API user name": "Nombre de usuario de la API",
|
|
5
|
+
"The historical configuration key is named port, but this value is the user name.": "La clave histórica se llama port, pero este valor es el nombre de usuario.",
|
|
6
|
+
"API password": "Contraseña de la API",
|
|
7
|
+
"Polling": "Intervalos de consulta",
|
|
8
|
+
"Active-device interval (ms)": "Intervalo del dispositivo activo (ms)",
|
|
9
|
+
"Idle-device interval (ms)": "Intervalo en reposo (ms)",
|
|
10
|
+
"History/setup interval (ms)": "Intervalo de historial/ajustes (ms)",
|
|
11
|
+
"Consumption history (days)": "Historial de consumo (días)",
|
|
12
|
+
"Use device-list long polling": "Usar long polling para la lista de dispositivos"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Enter the CLAGE Home Server address and its API credentials. All three fields are required.": "Saisissez l’adresse du CLAGE Home Server et ses identifiants API. Les trois champs sont obligatoires.",
|
|
3
|
+
"CLAGE Home Server IP address": "Adresse IP du CLAGE Home Server",
|
|
4
|
+
"API user name": "Nom d’utilisateur API",
|
|
5
|
+
"The historical configuration key is named port, but this value is the user name.": "La clé historique s’appelle port, mais cette valeur est le nom d’utilisateur.",
|
|
6
|
+
"API password": "Mot de passe API",
|
|
7
|
+
"Polling": "Intervalles d’interrogation",
|
|
8
|
+
"Active-device interval (ms)": "Intervalle appareil actif (ms)",
|
|
9
|
+
"Idle-device interval (ms)": "Intervalle au repos (ms)",
|
|
10
|
+
"History/setup interval (ms)": "Intervalle historique/réglages (ms)",
|
|
11
|
+
"Consumption history (days)": "Historique de consommation (jours)",
|
|
12
|
+
"Use device-list long polling": "Utiliser le long polling de la liste des appareils"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Enter the CLAGE Home Server address and its API credentials. All three fields are required.": "Inserisci l’indirizzo del CLAGE Home Server e le credenziali API. Tutti e tre i campi sono obbligatori.",
|
|
3
|
+
"CLAGE Home Server IP address": "Indirizzo IP del CLAGE Home Server",
|
|
4
|
+
"API user name": "Nome utente API",
|
|
5
|
+
"The historical configuration key is named port, but this value is the user name.": "La chiave storica si chiama port, ma questo valore è il nome utente.",
|
|
6
|
+
"API password": "Password API",
|
|
7
|
+
"Polling": "Intervalli di polling",
|
|
8
|
+
"Active-device interval (ms)": "Intervallo dispositivo attivo (ms)",
|
|
9
|
+
"Idle-device interval (ms)": "Intervallo inattivo (ms)",
|
|
10
|
+
"History/setup interval (ms)": "Intervallo cronologia/impostazioni (ms)",
|
|
11
|
+
"Consumption history (days)": "Cronologia dei consumi (giorni)",
|
|
12
|
+
"Use device-list long polling": "Usa long polling per l’elenco dispositivi"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Enter the CLAGE Home Server address and its API credentials. All three fields are required.": "Voer het adres van de CLAGE Home Server en de API-inloggegevens in. Alle drie de velden zijn verplicht.",
|
|
3
|
+
"CLAGE Home Server IP address": "IP-adres van de CLAGE Home Server",
|
|
4
|
+
"API user name": "API-gebruikersnaam",
|
|
5
|
+
"The historical configuration key is named port, but this value is the user name.": "De historische sleutel heet port, maar deze waarde is de gebruikersnaam.",
|
|
6
|
+
"API password": "API-wachtwoord",
|
|
7
|
+
"Polling": "Polling-intervallen",
|
|
8
|
+
"Active-device interval (ms)": "Interval actief apparaat (ms)",
|
|
9
|
+
"Idle-device interval (ms)": "Interval in rust (ms)",
|
|
10
|
+
"History/setup interval (ms)": "Interval historie/instellingen (ms)",
|
|
11
|
+
"Consumption history (days)": "Verbruiksgeschiedenis (dagen)",
|
|
12
|
+
"Use device-list long polling": "Long polling voor apparatenlijst gebruiken"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Enter the CLAGE Home Server address and its API credentials. All three fields are required.": "Wprowadź adres CLAGE Home Server i dane logowania API. Wszystkie trzy pola są wymagane.",
|
|
3
|
+
"CLAGE Home Server IP address": "Adres IP serwera CLAGE Home Server",
|
|
4
|
+
"API user name": "Nazwa użytkownika API",
|
|
5
|
+
"The historical configuration key is named port, but this value is the user name.": "Historyczny klucz nazywa się port, ale ta wartość jest nazwą użytkownika.",
|
|
6
|
+
"API password": "Hasło API",
|
|
7
|
+
"Polling": "Interwały odpytywania",
|
|
8
|
+
"Active-device interval (ms)": "Interwał aktywnego urządzenia (ms)",
|
|
9
|
+
"Idle-device interval (ms)": "Interwał bezczynności (ms)",
|
|
10
|
+
"History/setup interval (ms)": "Interwał historii/ustawień (ms)",
|
|
11
|
+
"Consumption history (days)": "Historia zużycia (dni)",
|
|
12
|
+
"Use device-list long polling": "Użyj long pollingu listy urządzeń"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Enter the CLAGE Home Server address and its API credentials. All three fields are required.": "Introduza o endereço do CLAGE Home Server e as credenciais da API. Os três campos são obrigatórios.",
|
|
3
|
+
"CLAGE Home Server IP address": "Endereço IP do CLAGE Home Server",
|
|
4
|
+
"API user name": "Nome de utilizador da API",
|
|
5
|
+
"The historical configuration key is named port, but this value is the user name.": "A chave histórica chama-se port, mas este valor é o nome de utilizador.",
|
|
6
|
+
"API password": "Palavra-passe da API",
|
|
7
|
+
"Polling": "Intervalos de consulta",
|
|
8
|
+
"Active-device interval (ms)": "Intervalo do dispositivo ativo (ms)",
|
|
9
|
+
"Idle-device interval (ms)": "Intervalo em repouso (ms)",
|
|
10
|
+
"History/setup interval (ms)": "Intervalo de histórico/configuração (ms)",
|
|
11
|
+
"Consumption history (days)": "Histórico de consumo (dias)",
|
|
12
|
+
"Use device-list long polling": "Usar long polling da lista de dispositivos"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Enter the CLAGE Home Server address and its API credentials. All three fields are required.": "Введите адрес CLAGE Home Server и учетные данные API. Все три поля обязательны.",
|
|
3
|
+
"CLAGE Home Server IP address": "IP-адрес CLAGE Home Server",
|
|
4
|
+
"API user name": "Имя пользователя API",
|
|
5
|
+
"The historical configuration key is named port, but this value is the user name.": "Исторический ключ называется port, но это имя пользователя.",
|
|
6
|
+
"API password": "Пароль API",
|
|
7
|
+
"Polling": "Интервалы опроса",
|
|
8
|
+
"Active-device interval (ms)": "Интервал активного устройства (мс)",
|
|
9
|
+
"Idle-device interval (ms)": "Интервал ожидания (мс)",
|
|
10
|
+
"History/setup interval (ms)": "Интервал истории/настроек (мс)",
|
|
11
|
+
"Consumption history (days)": "История потребления (дни)",
|
|
12
|
+
"Use device-list long polling": "Использовать long polling списка устройств"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Enter the CLAGE Home Server address and its API credentials. All three fields are required.": "Введіть адресу CLAGE Home Server та облікові дані API. Усі три поля обов’язкові.",
|
|
3
|
+
"CLAGE Home Server IP address": "IP-адреса CLAGE Home Server",
|
|
4
|
+
"API user name": "Ім’я користувача API",
|
|
5
|
+
"The historical configuration key is named port, but this value is the user name.": "Історичний ключ називається port, але це ім’я користувача.",
|
|
6
|
+
"API password": "Пароль API",
|
|
7
|
+
"Polling": "Інтервали опитування",
|
|
8
|
+
"Active-device interval (ms)": "Інтервал активного пристрою (мс)",
|
|
9
|
+
"Idle-device interval (ms)": "Інтервал очікування (мс)",
|
|
10
|
+
"History/setup interval (ms)": "Інтервал історії/налаштувань (мс)",
|
|
11
|
+
"Consumption history (days)": "Історія споживання (дні)",
|
|
12
|
+
"Use device-list long polling": "Використовувати long polling списку пристроїв"
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Enter the CLAGE Home Server address and its API credentials. All three fields are required.": "请输入 CLAGE Home Server 地址及其 API 凭据。三个字段均为必填项。",
|
|
3
|
+
"CLAGE Home Server IP address": "CLAGE Home Server IP 地址",
|
|
4
|
+
"API user name": "API 用户名",
|
|
5
|
+
"The historical configuration key is named port, but this value is the user name.": "历史配置键名为 port,但该值实际是用户名。",
|
|
6
|
+
"API password": "API 密码",
|
|
7
|
+
"Polling": "轮询间隔",
|
|
8
|
+
"Active-device interval (ms)": "活动设备间隔(毫秒)",
|
|
9
|
+
"Idle-device interval (ms)": "空闲设备间隔(毫秒)",
|
|
10
|
+
"History/setup interval (ms)": "历史/设置间隔(毫秒)",
|
|
11
|
+
"Consumption history (days)": "用量历史(天)",
|
|
12
|
+
"Use device-list long polling": "使用设备列表长轮询"
|
|
13
|
+
}
|
package/admin/jsonConfig.json
CHANGED
|
@@ -1,31 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "panel",
|
|
3
|
-
"i18n":
|
|
3
|
+
"i18n": true,
|
|
4
4
|
"items": {
|
|
5
5
|
"intro": {
|
|
6
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
|
-
},
|
|
7
|
+
"text": "Enter the CLAGE Home Server address and its API credentials. All three fields are required.",
|
|
11
8
|
"newLine": true,
|
|
12
9
|
"xs": 12
|
|
13
10
|
},
|
|
14
11
|
"adresse": {
|
|
15
12
|
"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
|
-
},
|
|
13
|
+
"label": "CLAGE Home Server IP address",
|
|
29
14
|
"listenOnAllPorts": false,
|
|
30
15
|
"onlyIp4": true,
|
|
31
16
|
"noInternal": false,
|
|
@@ -37,32 +22,8 @@
|
|
|
37
22
|
},
|
|
38
23
|
"port": {
|
|
39
24
|
"type": "text",
|
|
40
|
-
"label":
|
|
41
|
-
|
|
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
|
-
},
|
|
25
|
+
"label": "API user name",
|
|
26
|
+
"help": "The historical configuration key is named port, but this value is the user name.",
|
|
66
27
|
"xs": 12,
|
|
67
28
|
"sm": 6,
|
|
68
29
|
"md": 6,
|
|
@@ -71,19 +32,7 @@
|
|
|
71
32
|
},
|
|
72
33
|
"apiKey": {
|
|
73
34
|
"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
|
-
},
|
|
35
|
+
"label": "API password",
|
|
87
36
|
"visible": true,
|
|
88
37
|
"xs": 12,
|
|
89
38
|
"sm": 6,
|
|
@@ -93,39 +42,16 @@
|
|
|
93
42
|
},
|
|
94
43
|
"advancedInfo": {
|
|
95
44
|
"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
|
-
},
|
|
45
|
+
"text": "Polling",
|
|
109
46
|
"size": 2,
|
|
110
47
|
"newLine": true,
|
|
111
48
|
"xs": 12
|
|
112
49
|
},
|
|
113
50
|
"activePollMs": {
|
|
114
51
|
"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
|
-
},
|
|
52
|
+
"label": "Active-device interval (ms)",
|
|
128
53
|
"min": 1000,
|
|
54
|
+
"max": 3600000,
|
|
129
55
|
"xs": 12,
|
|
130
56
|
"sm": 6,
|
|
131
57
|
"md": 3,
|
|
@@ -134,20 +60,9 @@
|
|
|
134
60
|
},
|
|
135
61
|
"idlePollMs": {
|
|
136
62
|
"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
|
-
},
|
|
63
|
+
"label": "Idle-device interval (ms)",
|
|
150
64
|
"min": 5000,
|
|
65
|
+
"max": 3600000,
|
|
151
66
|
"xs": 12,
|
|
152
67
|
"sm": 6,
|
|
153
68
|
"md": 3,
|
|
@@ -156,20 +71,9 @@
|
|
|
156
71
|
},
|
|
157
72
|
"detailsPollMs": {
|
|
158
73
|
"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
|
-
},
|
|
74
|
+
"label": "History/setup interval (ms)",
|
|
172
75
|
"min": 60000,
|
|
76
|
+
"max": 3600000,
|
|
173
77
|
"xs": 12,
|
|
174
78
|
"sm": 6,
|
|
175
79
|
"md": 3,
|
|
@@ -178,19 +82,7 @@
|
|
|
178
82
|
},
|
|
179
83
|
"historyDays": {
|
|
180
84
|
"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
|
-
},
|
|
85
|
+
"label": "Consumption history (days)",
|
|
194
86
|
"min": 1,
|
|
195
87
|
"xs": 12,
|
|
196
88
|
"sm": 6,
|
|
@@ -200,19 +92,7 @@
|
|
|
200
92
|
},
|
|
201
93
|
"longPolling": {
|
|
202
94
|
"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
|
-
},
|
|
95
|
+
"label": "Use device-list long polling",
|
|
216
96
|
"xs": 12,
|
|
217
97
|
"sm": 6,
|
|
218
98
|
"md": 3,
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "clage-dsx",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.8",
|
|
5
5
|
"news": {
|
|
6
|
+
"0.0.8": {
|
|
7
|
+
"en": "Fixed latest-repository review findings for roles, setup fields, polling limits and translations.",
|
|
8
|
+
"de": "Review-Hinweise zu Rollen, Setup-Feldern, Abfragegrenzen und Übersetzungen behoben.",
|
|
9
|
+
"ru": "Исправлены замечания проверки по ролям, полям настройки, ограничениям опроса и переводам.",
|
|
10
|
+
"pt": "Corrigidos os pontos da revisão relativos a funções, campos de configuração, limites de consulta e traduções.",
|
|
11
|
+
"nl": "Reviewpunten voor rollen, instelvelden, pollinglimieten en vertalingen opgelost.",
|
|
12
|
+
"fr": "Correction des remarques concernant les rôles, les champs de configuration, les limites d’interrogation et les traductions.",
|
|
13
|
+
"it": "Corretti i rilievi relativi a ruoli, campi di configurazione, limiti di polling e traduzioni.",
|
|
14
|
+
"es": "Corregidos los hallazgos sobre funciones, campos de configuración, límites de sondeo y traducciones.",
|
|
15
|
+
"pl": "Naprawiono uwagi dotyczące ról, pól konfiguracji, limitów odpytywania i tłumaczeń.",
|
|
16
|
+
"uk": "Виправлено зауваження щодо ролей, полів налаштування, обмежень опитування та перекладів.",
|
|
17
|
+
"zh-cn": "修复了角色、设置字段、轮询限制和翻译方面的审核问题。"
|
|
18
|
+
},
|
|
19
|
+
"0.0.7": {
|
|
20
|
+
"en": "Corrected state roles for timestamps, version information and the numeric bus ID.",
|
|
21
|
+
"de": "Datenpunktrollen für Zeitstempel, Versionsinformationen und die numerische Bus-ID korrigiert.",
|
|
22
|
+
"ru": "Исправлены роли состояний для временных меток, информации о версии и числового идентификатора шины.",
|
|
23
|
+
"pt": "Corrigidas as funções dos estados para marcas de tempo, informações de versão e o ID numérico do barramento.",
|
|
24
|
+
"nl": "State-rollen voor tijdstempels, versie-informatie en de numerieke bus-ID gecorrigeerd.",
|
|
25
|
+
"fr": "Correction des rôles des états pour les horodatages, les informations de version et l'identifiant numérique du bus.",
|
|
26
|
+
"it": "Corretti i ruoli degli stati per timestamp, informazioni sulla versione e ID bus numerico.",
|
|
27
|
+
"es": "Corregidos los roles de estado para marcas de tiempo, información de versión e ID numérico del bus.",
|
|
28
|
+
"pl": "Poprawiono role stanów dla znaczników czasu, informacji o wersji i numerycznego identyfikatora magistrali.",
|
|
29
|
+
"uk": "Виправлено ролі станів для часових міток, інформації про версію та числового ідентифікатора шини.",
|
|
30
|
+
"zh-cn": "修正了时间戳、版本信息和数字总线 ID 的状态角色。"
|
|
31
|
+
},
|
|
6
32
|
"0.0.6": {
|
|
7
33
|
"en": "Added complete Home Server monitoring, consumption and error history, writable setup values, timer management and long polling.",
|
|
8
34
|
"de": "Vollständige Home-Server-Überwachung, Verbrauchs- und Fehlerhistorie, schreibbare Geräteeinstellungen, Timerverwaltung und Long Polling ergänzt.",
|
|
@@ -59,15 +85,15 @@
|
|
|
59
85
|
"desc": {
|
|
60
86
|
"en": "Control and monitor CLAGE water heaters through the Home Server API",
|
|
61
87
|
"de": "CLAGE-Durchlauferhitzer über die Home-Server-API steuern und überwachen",
|
|
62
|
-
"ru": "
|
|
63
|
-
"pt": "
|
|
64
|
-
"nl": "
|
|
65
|
-
"fr": "
|
|
66
|
-
"it": "
|
|
67
|
-
"es": "
|
|
68
|
-
"pl": "
|
|
69
|
-
"uk": "
|
|
70
|
-
"zh-cn": "
|
|
88
|
+
"ru": "Управление и мониторинг водонагревателей CLAGE через API Home Server",
|
|
89
|
+
"pt": "Controle e monitorização de aquecedores de água CLAGE através da API do Home Server",
|
|
90
|
+
"nl": "CLAGE-waterverwarmers bedienen en bewaken via de Home Server-API",
|
|
91
|
+
"fr": "Contrôler et surveiller les chauffe-eau CLAGE via l’API Home Server",
|
|
92
|
+
"it": "Controllo e monitoraggio degli scaldacqua CLAGE tramite l’API Home Server",
|
|
93
|
+
"es": "Control y supervisión de calentadores de agua CLAGE mediante la API de Home Server",
|
|
94
|
+
"pl": "Sterowanie i monitorowanie podgrzewaczy wody CLAGE przez interfejs API Home Server",
|
|
95
|
+
"uk": "Керування та моніторинг водонагрівачів CLAGE через API Home Server",
|
|
96
|
+
"zh-cn": "通过 Home Server API 控制和监控 CLAGE 热水器"
|
|
71
97
|
},
|
|
72
98
|
"authors": ["TheBam <elektrobam@gmx.de>"],
|
|
73
99
|
"keywords": ["water heater", "clage"],
|
package/main.js
CHANGED
|
@@ -115,9 +115,9 @@ class ClageDsx extends utils.Adapter {
|
|
|
115
115
|
return;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
this.activePollMs = Math.max(asNumber(this.config.activePollMs, 2000), 1000);
|
|
119
|
-
this.idlePollMs = Math.max(asNumber(this.config.idlePollMs, 30000), 5000);
|
|
120
|
-
this.detailsPollMs = Math.max(asNumber(this.config.detailsPollMs, 300000), 60000);
|
|
118
|
+
this.activePollMs = Math.min(Math.max(asNumber(this.config.activePollMs, 2000), 1000), 3600000);
|
|
119
|
+
this.idlePollMs = Math.min(Math.max(asNumber(this.config.idlePollMs, 30000), 5000), 3600000);
|
|
120
|
+
this.detailsPollMs = Math.min(Math.max(asNumber(this.config.detailsPollMs, 300000), 60000), 3600000);
|
|
121
121
|
this.historyDays = Math.max(asNumber(this.config.historyDays, 30), 1);
|
|
122
122
|
this.longPolling = this.config.longPolling !== false;
|
|
123
123
|
this.client = axios.create({
|
|
@@ -160,16 +160,16 @@ class ClageDsx extends utils.Adapter {
|
|
|
160
160
|
await this.ensureChannel("timers", "Timer management");
|
|
161
161
|
await this.ensureState("info.connection", "Connected", "boolean", "indicator.connected", true, false);
|
|
162
162
|
await this.ensureState("info.lastError", "Last error", "string", "text", true, false);
|
|
163
|
-
await this.ensureState("info.lastUpdate", "Last successful update", "string", "
|
|
164
|
-
await this.ensureState("info.apiVersion", "API version", "string", "
|
|
163
|
+
await this.ensureState("info.lastUpdate", "Last successful update", "string", "date", true, false);
|
|
164
|
+
await this.ensureState("info.apiVersion", "API version", "string", "text", true, false);
|
|
165
165
|
await this.ensureState("info.servicesJson", "Available services", "string", "json", true, false);
|
|
166
166
|
for (const [id, name, type, role] of [
|
|
167
167
|
["server.id", "Server ID", "string", "info.serial"],
|
|
168
168
|
["server.name", "Server name", "string", "info.name"],
|
|
169
169
|
["server.channel", "Radio channel", "number", "value"],
|
|
170
170
|
["server.address", "Radio address", "number", "value"],
|
|
171
|
-
["server.version", "Server version", "string", "
|
|
172
|
-
["server.revision", "Server revision", "string", "
|
|
171
|
+
["server.version", "Server version", "string", "text"],
|
|
172
|
+
["server.revision", "Server revision", "string", "text"],
|
|
173
173
|
["timers.listJson", "All timers", "string", "json"],
|
|
174
174
|
["timers.lastResultJson", "Last timer command result", "string", "json"],
|
|
175
175
|
]) {
|
|
@@ -251,15 +251,15 @@ class ClageDsx extends utils.Adapter {
|
|
|
251
251
|
}
|
|
252
252
|
const definitions = [
|
|
253
253
|
["Name", "Device name", "string", "info.name", true, true],
|
|
254
|
-
["busID", "Bus ID", "number", "
|
|
254
|
+
["busID", "Bus ID", "number", "value", true, false],
|
|
255
255
|
["id", "Device ID", "string", "info.serial", true, false],
|
|
256
256
|
["connected", "Device connected", "boolean", "indicator.connected", true, false],
|
|
257
257
|
["rssi", "Signal strength", "number", "value", true, false, "dBm"],
|
|
258
258
|
["lqi", "Link quality indicator", "number", "value", true, false],
|
|
259
259
|
["access", "API access mask", "number", "value", true, false],
|
|
260
|
-
["activity", "Last radio activity", "string", "
|
|
260
|
+
["activity", "Last radio activity", "string", "date", true, false],
|
|
261
261
|
["Setpoint", "Setpoint raw", "number", "level.temperature", true, true, "0.1 °C"],
|
|
262
|
-
["Themperatur", "Setpoint temperature", "number", "level.temperature", true, true, "°C"],
|
|
262
|
+
["Themperatur", "Setpoint temperature (legacy)", "number", "level.temperature", true, true, "°C"],
|
|
263
263
|
["tLimit", "Temperature limit raw", "number", "value.temperature", true, false, "0.1 °C"],
|
|
264
264
|
["flow", "Water flow raw", "number", "value", true, false, "0.1 l/min"],
|
|
265
265
|
["flowMax", "Maximum flow raw", "number", "level", true, true, "0.1 l/min"],
|
|
@@ -297,7 +297,7 @@ class ClageDsx extends utils.Adapter {
|
|
|
297
297
|
}
|
|
298
298
|
|
|
299
299
|
const setup = [
|
|
300
|
-
["swVersion", "Firmware version", "string", "
|
|
300
|
+
["swVersion", "Firmware version", "string", "text", false],
|
|
301
301
|
["serialDevice", "Device serial number", "string", "info.serial", false],
|
|
302
302
|
["serialPowerUnit", "Power unit serial number", "string", "info.serial", false],
|
|
303
303
|
["flowMax", "Maximum flow raw", "number", "level", true, "0.1 l/min"],
|
|
@@ -311,7 +311,7 @@ class ClageDsx extends utils.Adapter {
|
|
|
311
311
|
["timerPowerOn", "Heating duration", "number", "value.interval", false, "s"],
|
|
312
312
|
["timerLifetime", "Total operating time", "number", "value.interval", false, "s"],
|
|
313
313
|
["timerStandby", "Standby duration", "number", "value.interval", false, "s"],
|
|
314
|
-
["totalPowerConsumption", "Total energy consumption", "number", "value.
|
|
314
|
+
["totalPowerConsumption", "Total energy consumption", "number", "value.energy.consumed", false, "kWh"],
|
|
315
315
|
["totalWaterConsumption", "Total water consumption", "number", "value", false, "l"],
|
|
316
316
|
];
|
|
317
317
|
for (const [name, label, type, role, write, unit] of setup) {
|
|
@@ -328,12 +328,12 @@ class ClageDsx extends utils.Adapter {
|
|
|
328
328
|
|
|
329
329
|
for (const [name, label, type, role, unit] of [
|
|
330
330
|
["lastId", "Last draw-off ID", "number", "value", ""],
|
|
331
|
-
["lastTime", "Last draw-off time", "string", "
|
|
331
|
+
["lastTime", "Last draw-off time", "string", "date", ""],
|
|
332
332
|
["lastDuration", "Last draw-off duration", "number", "value.interval", "s"],
|
|
333
|
-
["lastEnergy", "Last draw-off energy", "number", "value.
|
|
333
|
+
["lastEnergy", "Last draw-off energy", "number", "value.energy.consumed", "Wh"],
|
|
334
334
|
["lastWater", "Last draw-off water", "number", "value", "l"],
|
|
335
335
|
["totalDuration", "Total draw-off duration", "number", "value.interval", "s"],
|
|
336
|
-
["totalEnergy", "Total draw-off energy", "number", "value.
|
|
336
|
+
["totalEnergy", "Total draw-off energy", "number", "value.energy.consumed", "Wh"],
|
|
337
337
|
["totalWater", "Total draw-off water", "number", "value", "l"],
|
|
338
338
|
["historyJson", "Draw-off history", "string", "json", ""],
|
|
339
339
|
]) {
|
|
@@ -445,11 +445,22 @@ class ClageDsx extends utils.Adapter {
|
|
|
445
445
|
const raw = response.data && response.data.devices && response.data.devices[0];
|
|
446
446
|
const setup = (raw && raw.setup) || {};
|
|
447
447
|
const transformed = {
|
|
448
|
-
|
|
448
|
+
swVersion: setup.swVersion,
|
|
449
|
+
serialDevice: setup.serialDevice,
|
|
450
|
+
serialPowerUnit: setup.serialPowerUnit,
|
|
449
451
|
flowMax: setup.flowMax,
|
|
452
|
+
loadShedding: setup.loadShedding,
|
|
450
453
|
scaldProtection: toCelsius(setup.scaldProtection),
|
|
451
454
|
sound: setup.sound === undefined ? undefined : Boolean(setup.sound),
|
|
455
|
+
fcpAddr: setup.fcpAddr,
|
|
456
|
+
powerCosts: setup.powerCosts,
|
|
452
457
|
powerMax: setup.powerMax === undefined ? undefined : asNumber(setup.powerMax) * 0.15,
|
|
458
|
+
calValue: setup.calValue,
|
|
459
|
+
timerPowerOn: setup.timerPowerOn,
|
|
460
|
+
timerLifetime: setup.timerLifetime,
|
|
461
|
+
timerStandby: setup.timerStandby,
|
|
462
|
+
totalPowerConsumption: setup.totalPowerConsumption,
|
|
463
|
+
totalWaterConsumption: setup.totalWaterConsumption,
|
|
453
464
|
};
|
|
454
465
|
for (const [name, value] of Object.entries(transformed)) {
|
|
455
466
|
if (value !== undefined && value !== null) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.clage-dsx",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "Control and monitor CLAGE water heaters through the Home Server API",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "TheBam",
|
|
@@ -34,6 +34,11 @@
|
|
|
34
34
|
"axios": "^1.18.1"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
+
"@alcalzone/release-script": "^5.2.1",
|
|
38
|
+
"@alcalzone/release-script-plugin-iobroker": "^5.2.0",
|
|
39
|
+
"@alcalzone/release-script-plugin-license": "^5.2.0",
|
|
40
|
+
"@alcalzone/release-script-plugin-manual-review": "^5.2.0",
|
|
41
|
+
"@iobroker/adapter-dev": "^1.5.0",
|
|
37
42
|
"@iobroker/eslint-config": "^2.3.4",
|
|
38
43
|
"@iobroker/testing": "^5.3.0",
|
|
39
44
|
"@tsconfig/node22": "^22.0.5",
|
|
@@ -48,7 +53,9 @@
|
|
|
48
53
|
"test:integration": "mocha test/integration --exit",
|
|
49
54
|
"test": "npm run test:js && npm run test:package",
|
|
50
55
|
"check": "tsc --noEmit -p tsconfig.check.json",
|
|
51
|
-
"lint": "eslint"
|
|
56
|
+
"lint": "eslint",
|
|
57
|
+
"release": "release-script",
|
|
58
|
+
"translate": "translate-adapter"
|
|
52
59
|
},
|
|
53
60
|
"bugs": {
|
|
54
61
|
"url": "https://github.com/TheBam1990/ioBroker.clage-dsx/issues"
|