iobroker.zigbee2mqtt 3.0.5 → 3.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/README.md +4 -0
- package/admin/i18n/de/translations.json +6 -4
- package/admin/i18n/en/translations.json +3 -1
- package/admin/i18n/es/translations.json +3 -1
- package/admin/i18n/fr/translations.json +3 -1
- package/admin/i18n/it/translations.json +3 -1
- package/admin/i18n/nl/translations.json +3 -1
- package/admin/i18n/pl/translations.json +3 -1
- package/admin/i18n/pt/translations.json +3 -1
- package/admin/i18n/ru/translations.json +3 -1
- package/admin/i18n/uk/translations.json +3 -1
- package/admin/i18n/zh-cn/translations.json +3 -1
- package/admin/jsonConfig.json +476 -433
- package/io-package.json +14 -14
- package/lib/imageController.js +19 -19
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -22,6 +22,10 @@ This adapter allows to control the data points of the devices of a Zigbee2MQTT i
|
|
|
22
22
|
[Adapter Documentation](https://github.com/arteck/ioBroker.zigbee2mqtt/blob/main/docs/wiki.md)
|
|
23
23
|
|
|
24
24
|
## Changelog
|
|
25
|
+
### 3.0.6 (2025-05-31)
|
|
26
|
+
- (arteck) settings restructure
|
|
27
|
+
- (arteck) fix icon not found message
|
|
28
|
+
|
|
25
29
|
### 3.0.5 (2025-05-29)
|
|
26
30
|
- (arteck) add additional folder for some devices (like smoke detector)
|
|
27
31
|
- (arteck) state.js cleanup
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
+
"click for Documentation": "hier geht es zur Dokumentation",
|
|
3
|
+
"A detailed documentation with explanations and all further information can be found on this GitHub page:": "Eine ausführliche Dokumentation mit Erklärungen und allen weiteren Informationen findest Du auf dieser GitHub-Seite:",
|
|
2
4
|
"zigbee2mqtt adapter settings": "Adaptereinstellungen für Zigbee2MQTT",
|
|
3
|
-
"Select and configure your Zigbee2MQTT connection": "
|
|
5
|
+
"Select and configure your Zigbee2MQTT connection": "Konfiguriere die Zigbee2MQTT anbindung",
|
|
4
6
|
"Select connection to Zigbee2MQTT": "Zigbee2MQTT Verbindung auswählen",
|
|
5
7
|
"Websocket": "Websocket",
|
|
6
8
|
"External MQTT-Server": "Externer MQTT-Server",
|
|
7
|
-
"Internal MQTT-Server
|
|
8
|
-
"Configure your Zigbee2MQTT connection": "
|
|
9
|
+
"Internal MQTT-Server": "Interner MQTT-Server",
|
|
10
|
+
"Configure your Zigbee2MQTT connection": "Konfiguriere",
|
|
9
11
|
"Websocket IP-Address": "Websocket IP-Adresse",
|
|
10
12
|
"Websocket Port": "Websocket Port",
|
|
11
|
-
"Create a dummy MQTT-Server for Zigbee2MQTT": "
|
|
13
|
+
"Create a dummy MQTT-Server for Zigbee2MQTT": "Internen MQTT-Server für Zigbee2MQTT erstellen",
|
|
12
14
|
"External MQTT-Server IP-Address": "IP-Adresse des externen MQTT-Servers",
|
|
13
15
|
"External MQTT-Server Port": "Externer MQTT-Server Port",
|
|
14
16
|
"MQTT-Server IP-Address bind": "MQTT-Server IP-Adresse binden",
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
+
"click for Documentation": "click for Documentation",
|
|
3
|
+
"A detailed documentation with explanations and all further information can be found on this GitHub page:": "A detailed documentation with explanations and all further information can be found on this GitHub page:",
|
|
2
4
|
"zigbee2mqtt adapter settings": "Adapter settings for zigbee2mqtt",
|
|
3
5
|
"Select and configure your Zigbee2MQTT connection": "Select and configure Zigbee2MQTT connection",
|
|
4
6
|
"Select connection to Zigbee2MQTT": "Select connection to Zigbee2MQTT",
|
|
5
7
|
"Websocket": "Websocket",
|
|
6
8
|
"External MQTT-Server": "External MQTT-Server",
|
|
7
|
-
"Internal MQTT-Server
|
|
9
|
+
"Internal MQTT-Server": "Internal MQTT-Server",
|
|
8
10
|
"Configure your Zigbee2MQTT connection": "Configure your Zigbee2MQTT connection",
|
|
9
11
|
"Websocket IP-Address": "Websocket IP-Address",
|
|
10
12
|
"Websocket Port": "Websocket Port",
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
+
"click for Documentation": "haz clic para ver la documentación",
|
|
3
|
+
"A detailed documentation with explanations and all further information can be found on this GitHub page:": "Una documentación detallada con explicaciones y toda la información adicional se puede encontrar en esta página de GitHub:",
|
|
2
4
|
"zigbee2mqtt adapter settings": "Configuración del adaptador para zigbee2mqtt",
|
|
3
5
|
"Select and configure your Zigbee2MQTT connection": "Seleccionar y configurar la conexión Zigbee2MQTT",
|
|
4
6
|
"Select connection to Zigbee2MQTT": "Seleccionar conexión a Zigbee2MQTT",
|
|
5
7
|
"Websocket": "Websocket",
|
|
6
8
|
"External MQTT-Server": "Servidor MQTT externo",
|
|
7
|
-
"Internal MQTT-Server
|
|
9
|
+
"Internal MQTT-Server": "Servidor MQTT interno",
|
|
8
10
|
"Configure your Zigbee2MQTT connection": "Configura tu conexión Zigbee2MQTT",
|
|
9
11
|
"Websocket IP-Address": "Dirección IP de Websocket",
|
|
10
12
|
"Websocket Port": "puerto websocket",
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
+
"click for Documentation": "cliquez pour la documentation",
|
|
3
|
+
"A detailed documentation with explanations and all further information can be found on this GitHub page:": "Une documentation détaillée avec des explications et toutes les informations complémentaires peut être trouvée sur cette page GitHub :",
|
|
2
4
|
"zigbee2mqtt adapter settings": "Paramètres de l'adaptateur pour zigbee2mqtt",
|
|
3
5
|
"Select and configure your Zigbee2MQTT connection": "Sélectionnez et configurez la connexion Zigbee2MQTT",
|
|
4
6
|
"Select connection to Zigbee2MQTT": "Sélectionnez la connexion à Zigbee2MQTT",
|
|
5
7
|
"Websocket": "Websocket",
|
|
6
8
|
"External MQTT-Server": "Serveur MQTT externe",
|
|
7
|
-
"Internal MQTT-Server
|
|
9
|
+
"Internal MQTT-Server": "Serveur MQTT interne",
|
|
8
10
|
"Configure your Zigbee2MQTT connection": "Configurez votre connexion Zigbee2MQTT",
|
|
9
11
|
"Websocket IP-Address": "Adresse IP Websocket",
|
|
10
12
|
"Websocket Port": "Port WebSocket",
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
+
"click for Documentation": "clicca per la documentazione",
|
|
3
|
+
"A detailed documentation with explanations and all further information can be found on this GitHub page:": "Una documentazione dettagliata con spiegazioni e tutte le ulteriori informazioni può essere trovata su questa pagina GitHub:",
|
|
2
4
|
"zigbee2mqtt adapter settings": "Impostazioni dell'adattatore per zigbee2mqtt",
|
|
3
5
|
"Select and configure your Zigbee2MQTT connection": "Seleziona e configura la connessione Zigbee2MQTT",
|
|
4
6
|
"Select connection to Zigbee2MQTT": "Seleziona la connessione a Zigbee2MQTT",
|
|
5
7
|
"Websocket": "Presa web",
|
|
6
8
|
"External MQTT-Server": "Server MQTT esterno",
|
|
7
|
-
"Internal MQTT-Server
|
|
9
|
+
"Internal MQTT-Server": "Server MQTT interno",
|
|
8
10
|
"Configure your Zigbee2MQTT connection": "Configura la tua connessione Zigbee2MQTT",
|
|
9
11
|
"Websocket IP-Address": "Indirizzo IP WebSocket",
|
|
10
12
|
"Websocket Port": "Porta websocket",
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
+
"click for Documentation": "klik voor documentatie",
|
|
3
|
+
"A detailed documentation with explanations and all further information can be found on this GitHub page:": "Een gedetailleerde documentatie met uitleg en alle verdere informatie is te vinden op deze GitHub-pagina:",
|
|
2
4
|
"zigbee2mqtt adapter settings": "Adapterinstellingen voor zigbee2mqtt",
|
|
3
5
|
"Select and configure your Zigbee2MQTT connection": "Selecteer en configureer de Zigbee2MQTT-verbinding",
|
|
4
6
|
"Select connection to Zigbee2MQTT": "Selecteer verbinding met Zigbee2MQTT",
|
|
5
7
|
"Websocket": "Websocket",
|
|
6
8
|
"External MQTT-Server": "Externe MQTT-server",
|
|
7
|
-
"Internal MQTT-Server
|
|
9
|
+
"Internal MQTT-Server": "Interne MQTT-server",
|
|
8
10
|
"Configure your Zigbee2MQTT connection": "Configureer je Zigbee2MQTT-verbinding",
|
|
9
11
|
"Websocket IP-Address": "Websocket IP-adres",
|
|
10
12
|
"Websocket Port": "Websocket-poort",
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
+
"click for Documentation": "kliknij, aby uzyskać dokumentację",
|
|
3
|
+
"A detailed documentation with explanations and all further information can be found on this GitHub page:": "Szczegółowa dokumentacja z wyjaśnieniami i wszystkimi dalszymi informacjami można znaleźć na tej stronie GitHub:",
|
|
2
4
|
"zigbee2mqtt adapter settings": "Ustawienia adaptera dla zigbee2mqtt",
|
|
3
5
|
"Select and configure your Zigbee2MQTT connection": "Wybierz i skonfiguruj połączenie Zigbee2MQTT",
|
|
4
6
|
"Select connection to Zigbee2MQTT": "Wybierz połączenie z Zigbee2MQTT",
|
|
5
7
|
"Websocket": "Gniazdo sieciowe",
|
|
6
8
|
"External MQTT-Server": "Zewnętrzny serwer MQTT",
|
|
7
|
-
"Internal MQTT-Server
|
|
9
|
+
"Internal MQTT-Server": "Wewnętrzny serwer MQTT",
|
|
8
10
|
"Configure your Zigbee2MQTT connection": "Skonfiguruj połączenie Zigbee2MQTT",
|
|
9
11
|
"Websocket IP-Address": "Adres IP gniazda internetowego",
|
|
10
12
|
"Websocket Port": "Gniazdo sieciowe",
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
+
"click for Documentation": "clique para ver a documentação",
|
|
3
|
+
"A detailed documentation with explanations and all further information can be found on this GitHub page:": "Uma documentação detalhada com explicações e toda a informação adicional pode ser encontrada nesta pagina do GitHub:",
|
|
2
4
|
"zigbee2mqtt adapter settings": "Configurações do adaptador para zigbee2mqtt",
|
|
3
5
|
"Select and configure your Zigbee2MQTT connection": "Selecione e configure a conexão Zigbee2MQTT",
|
|
4
6
|
"Select connection to Zigbee2MQTT": "Selecione a conexão com Zigbee2MQTT",
|
|
5
7
|
"Websocket": "Websocket",
|
|
6
8
|
"External MQTT-Server": "Servidor MQTT Externo",
|
|
7
|
-
"Internal MQTT-Server
|
|
9
|
+
"Internal MQTT-Server": "Servidor MQTT Interno",
|
|
8
10
|
"Configure your Zigbee2MQTT connection": "Configure sua conexão Zigbee2MQTT",
|
|
9
11
|
"Websocket IP-Address": "Endereço IP do Websocket",
|
|
10
12
|
"Websocket Port": "Porta Websocket",
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
+
"click for Documentation": "нажмите для документации",
|
|
3
|
+
"A detailed documentation with explanations and all further information can be found on this GitHub page:": "Подробная документация с объяснениями и всеми дальними информаций можно найти на этом GitHub-странице:",
|
|
2
4
|
"zigbee2mqtt adapter settings": "Настройки адаптера для zigbee2mqtt",
|
|
3
5
|
"Select and configure your Zigbee2MQTT connection": "Выберите и настройте соединение Zigbee2MQTT",
|
|
4
6
|
"Select connection to Zigbee2MQTT": "Выберите подключение к Zigbee2MQTT",
|
|
5
7
|
"Websocket": "Веб-сокет",
|
|
6
8
|
"External MQTT-Server": "Внешний MQTT-сервер",
|
|
7
|
-
"Internal MQTT-Server
|
|
9
|
+
"Internal MQTT-Server": "Внутренний MQTT-сервер",
|
|
8
10
|
"Configure your Zigbee2MQTT connection": "Настройте соединение Zigbee2MQTT",
|
|
9
11
|
"Websocket IP-Address": "IP-адрес веб-сокета",
|
|
10
12
|
"Websocket Port": "Порт веб-сокета",
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
+
"click for Documentation": "натисніть для документації",
|
|
3
|
+
"A detailed documentation with explanations and all further information can be found on this GitHub page:": "Детальна документація з поясненнями і всім більшою інформацією можна знайти на цій GitHub-сторінці:",
|
|
2
4
|
"zigbee2mqtt adapter settings": "Налаштування адаптера для zigbee2mqtt",
|
|
3
5
|
"Select and configure your Zigbee2MQTT connection": "Виберіть і налаштуйте підключення Zigbee2MQTT",
|
|
4
6
|
"Select connection to Zigbee2MQTT": "Виберіть підключення до Zigbee2MQTT",
|
|
5
7
|
"Websocket": "Websocket",
|
|
6
8
|
"External MQTT-Server": "Зовнішній MQTT-сервер",
|
|
7
|
-
"Internal MQTT-Server
|
|
9
|
+
"Internal MQTT-Server": "Внутрішній MQTT-сервер",
|
|
8
10
|
"Configure your Zigbee2MQTT connection": "Налаштуйте підключення Zigbee2MQTT",
|
|
9
11
|
"Websocket IP-Address": "IP-адреса Websocket",
|
|
10
12
|
"Websocket Port": "Порт Websocket",
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
+
"click for Documentation": "点击查看文档",
|
|
3
|
+
"A detailed documentation with explanations and all further information can be found on this GitHub page:": "有关更多信息,请参见 GitHub 页面上的详细说明和解释:",
|
|
2
4
|
"zigbee2mqtt adapter settings": "zigbee2mqtt 的适配器设置",
|
|
3
5
|
"Select and configure your Zigbee2MQTT connection": "选择并配置 Zigbee2MQTT 连接",
|
|
4
6
|
"Select connection to Zigbee2MQTT": "选择与 Zigbee2MQTT 的连接",
|
|
5
7
|
"Websocket": "网络套接字",
|
|
6
8
|
"External MQTT-Server": "外部 MQTT 服务器",
|
|
7
|
-
"Internal MQTT-Server
|
|
9
|
+
"Internal MQTT-Server": "内部 MQTT 服务器",
|
|
8
10
|
"Configure your Zigbee2MQTT connection": "配置您的 Zigbee2MQTT 连接",
|
|
9
11
|
"Websocket IP-Address": "Websocket IP 地址",
|
|
10
12
|
"Websocket Port": "Websocket 端口",
|
package/admin/jsonConfig.json
CHANGED
|
@@ -1,434 +1,477 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
2
|
+
"i18n": true,
|
|
3
|
+
"type": "tabs",
|
|
4
|
+
"tabsStyle": {
|
|
5
|
+
"width": "calc(100% - 100px)"
|
|
6
|
+
},
|
|
7
|
+
"items": {
|
|
8
|
+
"_tab_Start": {
|
|
9
|
+
"type": "panel",
|
|
10
|
+
"label": "Main Settings",
|
|
11
|
+
"items": {
|
|
12
|
+
"header_Start": {
|
|
13
|
+
"type": "header",
|
|
14
|
+
"text": "Welcome to Zigbee2MQTT Adapter",
|
|
15
|
+
"size": 2
|
|
16
|
+
},
|
|
17
|
+
"_textStart": {
|
|
18
|
+
"type": "staticText",
|
|
19
|
+
"text": "A detailed documentation with explanations and all further information can be found on this GitHub page",
|
|
20
|
+
"xs": 12,
|
|
21
|
+
"sm": 12,
|
|
22
|
+
"md": 6,
|
|
23
|
+
"lg": 4,
|
|
24
|
+
"xl": 4,
|
|
25
|
+
"style": {
|
|
26
|
+
"fontSize": 14,
|
|
27
|
+
"marginTop": 0
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"_documentationLink": {
|
|
31
|
+
"type": "staticLink",
|
|
32
|
+
"label": "click for Documentation",
|
|
33
|
+
"button": true,
|
|
34
|
+
"href": "https://github.com/arteck/ioBroker.zigbee2mqtt/blob/main/docs/wiki.md",
|
|
35
|
+
"xs": 12,
|
|
36
|
+
"sm": 12,
|
|
37
|
+
"md": 6,
|
|
38
|
+
"lg": 4,
|
|
39
|
+
"xl": 4,
|
|
40
|
+
"style": {
|
|
41
|
+
"fontSize": 18,
|
|
42
|
+
"marginTop": 0
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"connectionHeader": {
|
|
46
|
+
"type": "header",
|
|
47
|
+
"text": "Select and configure your Zigbee2MQTT connection",
|
|
48
|
+
"size": 2,
|
|
49
|
+
"newLine": true
|
|
50
|
+
},
|
|
51
|
+
"connectionType": {
|
|
52
|
+
"label": "Select connection to Zigbee2MQTT",
|
|
53
|
+
"xs": 12,
|
|
54
|
+
"sm": 12,
|
|
55
|
+
"md": 6,
|
|
56
|
+
"lg": 4,
|
|
57
|
+
"xl": 4,
|
|
58
|
+
"type": "select",
|
|
59
|
+
"options": [
|
|
60
|
+
{
|
|
61
|
+
"label": "Websocket",
|
|
62
|
+
"value": "ws"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"label": "External MQTT-Server",
|
|
66
|
+
"value": "exmqtt"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"label": "Internal MQTT-Server",
|
|
70
|
+
"value": "intmqtt"
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"newLine": true
|
|
74
|
+
},
|
|
75
|
+
"spacer01": {
|
|
76
|
+
"type": "staticText",
|
|
77
|
+
"text": "",
|
|
78
|
+
"xs": 12,
|
|
79
|
+
"sm": 12,
|
|
80
|
+
"md": 6,
|
|
81
|
+
"lg": 4,
|
|
82
|
+
"xl": 4,
|
|
83
|
+
"newLine": true
|
|
84
|
+
},
|
|
85
|
+
"wsHeader": {
|
|
86
|
+
"type": "staticText",
|
|
87
|
+
"text": "Configure your Zigbee2MQTT connection",
|
|
88
|
+
"xs": 12,
|
|
89
|
+
"sm": 12,
|
|
90
|
+
"md": 6,
|
|
91
|
+
"lg": 4,
|
|
92
|
+
"xl": 4,
|
|
93
|
+
"newLine": true
|
|
94
|
+
},
|
|
95
|
+
"wsScheme": {
|
|
96
|
+
"type": "select",
|
|
97
|
+
"label": "Scheme",
|
|
98
|
+
"options": [
|
|
99
|
+
{
|
|
100
|
+
"label": "WS",
|
|
101
|
+
"value": "ws"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"label": "WSS (SSL)",
|
|
105
|
+
"value": "wss"
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
"newLine": true,
|
|
109
|
+
"xs": 12,
|
|
110
|
+
"sm": 12,
|
|
111
|
+
"md": 6,
|
|
112
|
+
"lg": 4,
|
|
113
|
+
"xl": 4,
|
|
114
|
+
"hidden": "data.connectionType != 'ws'"
|
|
115
|
+
},
|
|
116
|
+
"wsServerIP": {
|
|
117
|
+
"type": "text",
|
|
118
|
+
"label": "Websocket IP-Address",
|
|
119
|
+
"xs": 12,
|
|
120
|
+
"sm": 12,
|
|
121
|
+
"md": 6,
|
|
122
|
+
"lg": 4,
|
|
123
|
+
"xl": 4,
|
|
124
|
+
"newLine": false,
|
|
125
|
+
"hidden": "data.connectionType != 'ws'"
|
|
126
|
+
},
|
|
127
|
+
"wsServerPort": {
|
|
128
|
+
"type": "number",
|
|
129
|
+
"label": "Websocket Port",
|
|
130
|
+
"newLine": false,
|
|
131
|
+
"xs": 12,
|
|
132
|
+
"sm": 12,
|
|
133
|
+
"md": 6,
|
|
134
|
+
"lg": 4,
|
|
135
|
+
"xl": 4,
|
|
136
|
+
"hidden": "data.connectionType != 'ws'"
|
|
137
|
+
},
|
|
138
|
+
"wsTokenEnabled": {
|
|
139
|
+
"type": "checkbox",
|
|
140
|
+
"label": "Use Auth-Token",
|
|
141
|
+
"newLine": true,
|
|
142
|
+
"xs": 12,
|
|
143
|
+
"sm": 12,
|
|
144
|
+
"md": 6,
|
|
145
|
+
"lg": 4,
|
|
146
|
+
"xl": 4,
|
|
147
|
+
"hidden": "data.connectionType != 'ws'"
|
|
148
|
+
},
|
|
149
|
+
"wsToken": {
|
|
150
|
+
"type": "password",
|
|
151
|
+
"label": "Auth-Token (special characters are not supported)",
|
|
152
|
+
"newLine": true,
|
|
153
|
+
"xs": 12,
|
|
154
|
+
"sm": 12,
|
|
155
|
+
"md": 6,
|
|
156
|
+
"lg": 5,
|
|
157
|
+
"xl": 4,
|
|
158
|
+
"hidden": "data.wsTokenEnabled != true || data.connectionType != 'ws'"
|
|
159
|
+
},
|
|
160
|
+
"dummyMqtt": {
|
|
161
|
+
"type": "checkbox",
|
|
162
|
+
"label": "Create a dummy MQTT-Server for Zigbee2MQTT",
|
|
163
|
+
"newLine": true,
|
|
164
|
+
"xs": 12,
|
|
165
|
+
"sm": 12,
|
|
166
|
+
"md": 6,
|
|
167
|
+
"lg": 4,
|
|
168
|
+
"xl": 4,
|
|
169
|
+
"hidden": "data.connectionType != 'ws'"
|
|
170
|
+
},
|
|
171
|
+
"externalMqttServerIP": {
|
|
172
|
+
"type": "text",
|
|
173
|
+
"label": "External MQTT-Server IP-Address",
|
|
174
|
+
"newLine": true,
|
|
175
|
+
"xs": 12,
|
|
176
|
+
"sm": 12,
|
|
177
|
+
"md": 6,
|
|
178
|
+
"lg": 4,
|
|
179
|
+
"xl": 4,
|
|
180
|
+
"hidden": "data.connectionType != 'exmqtt'"
|
|
181
|
+
},
|
|
182
|
+
"externalMqttServerPort": {
|
|
183
|
+
"type": "number",
|
|
184
|
+
"label": "External MQTT-Server Port",
|
|
185
|
+
"newLine": false,
|
|
186
|
+
"xs": 12,
|
|
187
|
+
"sm": 12,
|
|
188
|
+
"md": 6,
|
|
189
|
+
"lg": 4,
|
|
190
|
+
"xl": 4,
|
|
191
|
+
"hidden": "data.connectionType != 'exmqtt'"
|
|
192
|
+
},
|
|
193
|
+
"externalMqttServerCredentials": {
|
|
194
|
+
"type": "checkbox",
|
|
195
|
+
"label": "Use MQTT Credentials",
|
|
196
|
+
"newLine": true,
|
|
197
|
+
"xs": 12,
|
|
198
|
+
"sm": 12,
|
|
199
|
+
"md": 6,
|
|
200
|
+
"lg": 4,
|
|
201
|
+
"xl": 4,
|
|
202
|
+
"hidden": "data.connectionType != 'exmqtt'"
|
|
203
|
+
},
|
|
204
|
+
"externalMqttServerUsername": {
|
|
205
|
+
"type": "text",
|
|
206
|
+
"label": "MQTT Username",
|
|
207
|
+
"newLine": true,
|
|
208
|
+
"xs": 12,
|
|
209
|
+
"sm": 12,
|
|
210
|
+
"md": 6,
|
|
211
|
+
"lg": 4,
|
|
212
|
+
"xl": 4,
|
|
213
|
+
"hidden": "data.externalMqttServerCredentials != true ||data.connectionType != 'exmqtt'"
|
|
214
|
+
},
|
|
215
|
+
"externalMqttServerPassword": {
|
|
216
|
+
"type": "password",
|
|
217
|
+
"label": "MQTT Password",
|
|
218
|
+
"newLine": false,
|
|
219
|
+
"xs": 12,
|
|
220
|
+
"sm": 12,
|
|
221
|
+
"md": 6,
|
|
222
|
+
"lg": 4,
|
|
223
|
+
"xl": 4,
|
|
224
|
+
"visible": true,
|
|
225
|
+
"hidden": "data.externalMqttServerCredentials != true ||data.connectionType != 'exmqtt'"
|
|
226
|
+
},
|
|
227
|
+
"mqttServerIPBind": {
|
|
228
|
+
"type": "ip",
|
|
229
|
+
"label": "MQTT-Server IP-Address bind",
|
|
230
|
+
"listenOnAllPorts": true,
|
|
231
|
+
"xs": 12,
|
|
232
|
+
"sm": 12,
|
|
233
|
+
"md": 6,
|
|
234
|
+
"lg": 4,
|
|
235
|
+
"xl": 4,
|
|
236
|
+
"newLine": true,
|
|
237
|
+
"hidden": "data.connectionType == 'exmqtt' || data.dummyMqtt == false && data.connectionType == 'ws'"
|
|
238
|
+
},
|
|
239
|
+
"mqttServerPort": {
|
|
240
|
+
"type": "number",
|
|
241
|
+
"label": "MQTT-Server Port",
|
|
242
|
+
"xs": 12,
|
|
243
|
+
"sm": 12,
|
|
244
|
+
"md": 6,
|
|
245
|
+
"lg": 4,
|
|
246
|
+
"xl": 4,
|
|
247
|
+
"newLine": false,
|
|
248
|
+
"hidden": "data.connectionType == 'exmqtt' || data.dummyMqtt == false && data.connectionType == 'ws'"
|
|
249
|
+
},
|
|
250
|
+
"spacer02": {
|
|
251
|
+
"type": "staticText",
|
|
252
|
+
"text": "",
|
|
253
|
+
"newLine": true,
|
|
254
|
+
"hidden": "data.connectionType == 'ws'"
|
|
255
|
+
},
|
|
256
|
+
"webUIHeader": {
|
|
257
|
+
"type": "header",
|
|
258
|
+
"text": "Configure your Zigbee2MQTT WebUi connection",
|
|
259
|
+
"size": 2,
|
|
260
|
+
"newLine": true
|
|
261
|
+
},
|
|
262
|
+
"webUIScheme": {
|
|
263
|
+
"type": "select",
|
|
264
|
+
"label": "Scheme",
|
|
265
|
+
"options": [
|
|
266
|
+
{
|
|
267
|
+
"label": "HTTP",
|
|
268
|
+
"value": "http"
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"label": "HTTPS",
|
|
272
|
+
"value": "https"
|
|
273
|
+
}
|
|
274
|
+
],
|
|
275
|
+
"xs": 12,
|
|
276
|
+
"sm": 12,
|
|
277
|
+
"md": 6,
|
|
278
|
+
"lg": 4,
|
|
279
|
+
"xl": 4,
|
|
280
|
+
"newLine": true
|
|
281
|
+
},
|
|
282
|
+
"webUIServer": {
|
|
283
|
+
"type": "text",
|
|
284
|
+
"label": "WebUi Address",
|
|
285
|
+
"xs": 12,
|
|
286
|
+
"sm": 12,
|
|
287
|
+
"md": 6,
|
|
288
|
+
"lg": 4,
|
|
289
|
+
"xl": 4,
|
|
290
|
+
"newLine": false
|
|
291
|
+
},
|
|
292
|
+
"webUIPort": {
|
|
293
|
+
"type": "number",
|
|
294
|
+
"label": "WebUi Port",
|
|
295
|
+
"xs": 12,
|
|
296
|
+
"sm": 12,
|
|
297
|
+
"md": 6,
|
|
298
|
+
"lg": 4,
|
|
299
|
+
"xl": 4,
|
|
300
|
+
"newLine": false
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
},
|
|
304
|
+
"_tab_Color Settings": {
|
|
305
|
+
"type": "panel",
|
|
306
|
+
"label": "Color configurations",
|
|
307
|
+
"items": {
|
|
308
|
+
"colorTempSyncColor": {
|
|
309
|
+
"type": "checkbox",
|
|
310
|
+
"label": "Color temperature sync with color",
|
|
311
|
+
"newLine": true
|
|
312
|
+
},
|
|
313
|
+
"useKelvin": {
|
|
314
|
+
"type": "checkbox",
|
|
315
|
+
"label": "Use Kelvin instead of mired for the color temps",
|
|
316
|
+
"newLine": true
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
"_tab_State Settings": {
|
|
321
|
+
"type": "panel",
|
|
322
|
+
"label": "State configurations",
|
|
323
|
+
"items": {
|
|
324
|
+
"simpleHoldReleaseState": {
|
|
325
|
+
"type": "checkbox",
|
|
326
|
+
"label": "Generate simple 'Hold' and 'Release' states",
|
|
327
|
+
"help": "When enabled, the 'Hold' and 'Release' states are combined and the 'Hold' data point remains true until the 'Release' event arrives.",
|
|
328
|
+
"newLine": true
|
|
329
|
+
},
|
|
330
|
+
"simpleMoveStopState": {
|
|
331
|
+
"type": "checkbox",
|
|
332
|
+
"label": "Generate simple 'Move' and 'Stop' states",
|
|
333
|
+
"help": "When enabled, the 'Move' and 'Stop' states are combined and the 'Move' data point remains true until the 'Stop' event arrives.",
|
|
334
|
+
"newLine": true
|
|
335
|
+
},
|
|
336
|
+
"simplePressReleaseState": {
|
|
337
|
+
"type": "checkbox",
|
|
338
|
+
"label": "Generate simple 'Press' and 'Release' states",
|
|
339
|
+
"help": "When enabled, the 'Press' and 'Release' states are combined and the 'Press' data point remains true until the 'Release' event arrives.",
|
|
340
|
+
"newLine": true
|
|
341
|
+
},
|
|
342
|
+
"brightnessMoveOnOff": {
|
|
343
|
+
"type": "checkbox",
|
|
344
|
+
"label": "Brightness move should also turn the light on or off",
|
|
345
|
+
"newLine": true
|
|
346
|
+
},
|
|
347
|
+
"brightnessStepOnOff": {
|
|
348
|
+
"type": "checkbox",
|
|
349
|
+
"label": "Brightness step should also turn the light on or off",
|
|
350
|
+
"newLine": true
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
},
|
|
354
|
+
"_tab_Image Settings": {
|
|
355
|
+
"type": "panel",
|
|
356
|
+
"label": "Device image configurations",
|
|
357
|
+
"items": {
|
|
358
|
+
"useDeviceIcons": {
|
|
359
|
+
"type": "checkbox",
|
|
360
|
+
"label": "Download device images from Zigbee2Mqtt and use them as object icons.",
|
|
361
|
+
"help": "If the size is later changed to a larger value, the images already downloaded must be deleted. <br> Please note that icons are stored in the object and should therefore not be unnecessarily large!",
|
|
362
|
+
"newLine": true
|
|
363
|
+
},
|
|
364
|
+
"deviceIconsSize": {
|
|
365
|
+
"type": "number",
|
|
366
|
+
"label": "Size of the object icons in pixels",
|
|
367
|
+
"min": 8,
|
|
368
|
+
"xs": 12,
|
|
369
|
+
"sm": 12,
|
|
370
|
+
"md": 6,
|
|
371
|
+
"lg": 4,
|
|
372
|
+
"xl": 4,
|
|
373
|
+
"newLine": true
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
"_tab_Other Settings": {
|
|
378
|
+
"type": "panel",
|
|
379
|
+
"label": "Other configurations",
|
|
380
|
+
"items": {
|
|
381
|
+
|
|
382
|
+
"proxyZ2MLogs": {
|
|
383
|
+
"type": "checkbox",
|
|
384
|
+
"label": "Proxy Zigbee2MQTT logs to ioBroker logs",
|
|
385
|
+
"newLine": true
|
|
386
|
+
},
|
|
387
|
+
"useEventInDesc": {
|
|
388
|
+
"type": "checkbox",
|
|
389
|
+
"label": "The events such as 'Device removed' or 'Disabled' are displayed in the description instead of in the name.",
|
|
390
|
+
"newLine": true
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
},
|
|
394
|
+
"_tab_Expert Settings": {
|
|
395
|
+
"type": "panel",
|
|
396
|
+
"label": "Expert configurations",
|
|
397
|
+
"items": {
|
|
398
|
+
"expertHeader": {
|
|
399
|
+
"type": "header",
|
|
400
|
+
"text": "Expert Settings. Please only use if you know what you're doing",
|
|
401
|
+
"size": 2,
|
|
402
|
+
"newLine": true
|
|
403
|
+
},
|
|
404
|
+
"coordinatorCheck": {
|
|
405
|
+
"type": "checkbox",
|
|
406
|
+
"label": "Automatic check for missing routers in the coordinator memory.",
|
|
407
|
+
"help": "More information",
|
|
408
|
+
"helpLink": "https://www.zigbee2mqtt.io/guide/usage/mqtt_topics_and_messages.html#zigbee2mqtt-bridge-request-coordinator-check",
|
|
409
|
+
"newLine": true
|
|
410
|
+
},
|
|
411
|
+
"coordinatorCheckLogLvl": {
|
|
412
|
+
"type": "select",
|
|
413
|
+
"sm": 12,
|
|
414
|
+
"label": "With which log level should a negative search be logged?",
|
|
415
|
+
"options": [
|
|
416
|
+
{
|
|
417
|
+
"label": {
|
|
418
|
+
"en": "Debug"
|
|
419
|
+
},
|
|
420
|
+
"value": "debug"
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"label": {
|
|
424
|
+
"en": "Info"
|
|
425
|
+
},
|
|
426
|
+
"value": "info"
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
"label": {
|
|
430
|
+
"en": "Warning"
|
|
431
|
+
},
|
|
432
|
+
"value": "warn"
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"label": {
|
|
436
|
+
"en": "Error"
|
|
437
|
+
},
|
|
438
|
+
"value": "error"
|
|
439
|
+
}
|
|
440
|
+
],
|
|
441
|
+
"newLine": true,
|
|
442
|
+
"xs": 12,
|
|
443
|
+
"md": 6,
|
|
444
|
+
"lg": 4,
|
|
445
|
+
"xl": 4,
|
|
446
|
+
"hidden": "data.coordinatorCheck != true"
|
|
447
|
+
},
|
|
448
|
+
"coordinatorCheckCron": {
|
|
449
|
+
"type": "cron",
|
|
450
|
+
"label": "Time of the automatic check",
|
|
451
|
+
"help": "Default: 0 3 * * * (At 03:00 every day)",
|
|
452
|
+
"simple": true,
|
|
453
|
+
"newLine": true,
|
|
454
|
+
"sm": 3,
|
|
455
|
+
"hidden": "data.coordinatorCheck != true"
|
|
456
|
+
},
|
|
457
|
+
"spacer04": {
|
|
458
|
+
"type": "staticText",
|
|
459
|
+
"text": "",
|
|
460
|
+
"newLine": true,
|
|
461
|
+
"hidden": "data.coordinatorCheck != true"
|
|
462
|
+
},
|
|
463
|
+
|
|
464
|
+
"allwaysUpdateOccupancyState": {
|
|
465
|
+
"type": "checkbox",
|
|
466
|
+
"label": "Allways update state for occupancy when message arrives from zigbee2mqtt server (Only for true state). Increases load on ioBroker System",
|
|
467
|
+
"newLine": true
|
|
468
|
+
},
|
|
469
|
+
"allwaysUpdateAvailableState": {
|
|
470
|
+
"type": "checkbox",
|
|
471
|
+
"label": "Allways update available state when message included last_seen status",
|
|
472
|
+
"newLine": true
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
}
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "zigbee2mqtt",
|
|
4
|
-
"version": "3.0.
|
|
4
|
+
"version": "3.0.6",
|
|
5
5
|
"news": {
|
|
6
|
+
"3.0.6": {
|
|
7
|
+
"en": "settings restructure\nfix icon not found message",
|
|
8
|
+
"de": "einstellungen restrukturieren\nsymbol nicht gefunden",
|
|
9
|
+
"ru": "реструктуризация настроек\nисправить иконку не найдено сообщение",
|
|
10
|
+
"pt": "reestruturação de configurações\ncorrigir ícone não encontrado mensagem",
|
|
11
|
+
"nl": "instellingen herstructureren\npictogram niet gevonden bericht herstellen",
|
|
12
|
+
"fr": "restructuration des paramètres\ncorrection icône non trouvée message",
|
|
13
|
+
"it": "installazione\nfix icona non trovato messaggio",
|
|
14
|
+
"es": "configuración de reestructuración\nfijar icono no encontrado mensaje",
|
|
15
|
+
"pl": "restrukturyzacja ustawień\nnie znaleziono ikony",
|
|
16
|
+
"uk": "реструктуризація параметрів\nне знайдено повідомлення",
|
|
17
|
+
"zh-cn": "设置调整\n未找到消息的修复图标"
|
|
18
|
+
},
|
|
6
19
|
"3.0.5": {
|
|
7
20
|
"en": "add additional folder for some devices (like smoke detector)\nstate.js cleanup\nset available State to true if device message include last_seen status",
|
|
8
21
|
"de": "zusätzliche ordner für einige geräte hinzufügen (wie rauchmelder)\nstate.js cleanup\neingestellt verfügbar Zustand, um wahr zu sein, wenn die Gerätenachricht last_seen status enthält",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
93
|
"pl": "adaptacja z2m 2.x",
|
|
81
94
|
"uk": "адаптація z2m 2.x",
|
|
82
95
|
"zh-cn": "适应z2m 2.x"
|
|
83
|
-
},
|
|
84
|
-
"2.13.11": {
|
|
85
|
-
"en": "corr package.json",
|
|
86
|
-
"de": "korr paket.json",
|
|
87
|
-
"ru": "коррек-пакет.json",
|
|
88
|
-
"pt": "corr pacote.json",
|
|
89
|
-
"nl": "corr package.json",
|
|
90
|
-
"fr": "c'est ce qu'il a dit",
|
|
91
|
-
"it": "pacchetto corr.json",
|
|
92
|
-
"es": "corr package.json",
|
|
93
|
-
"pl": "corr package.json",
|
|
94
|
-
"uk": "english, українська, français..",
|
|
95
|
-
"zh-cn": "corr 软件包.json"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"messages": [
|
package/lib/imageController.js
CHANGED
|
@@ -53,6 +53,7 @@ class ImageController {
|
|
|
53
53
|
const slsIconFileName = `${this.sanitizeModelIDForImageUrl(device.model_id)}.png`;
|
|
54
54
|
|
|
55
55
|
let iconFileName = await this.getExistingIconFileName(z2mIconFileNameJPG, z2mIconFileNamePNG, slsIconFileName);
|
|
56
|
+
let iconFound = true;
|
|
56
57
|
|
|
57
58
|
if (!iconFileName) {
|
|
58
59
|
const iconUrls = [
|
|
@@ -63,30 +64,29 @@ class ImageController {
|
|
|
63
64
|
|
|
64
65
|
for (const iconUrl of iconUrls) {
|
|
65
66
|
try {
|
|
66
|
-
await this.downloadIcon(this.adapter, iconUrl, this.adapter.namespace);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
iconFound = await this.downloadIcon(this.adapter, iconUrl, this.adapter.namespace);
|
|
68
|
+
if (iconFound) {
|
|
69
|
+
iconFileName = this.getFileNameWithExtension(iconUrl);
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
} catch (ex) {
|
|
73
|
+
// check next pic
|
|
71
74
|
}
|
|
72
75
|
}
|
|
73
76
|
}
|
|
74
77
|
|
|
75
|
-
if (!
|
|
76
|
-
this.adapter.log.warn(`
|
|
78
|
+
if (!iconFound) {
|
|
79
|
+
this.adapter.log.warn(`Failed to download image for device model: ${device.definition.model} - ${device.definition.description}`);
|
|
77
80
|
return '';
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
let icon;
|
|
81
|
-
try {
|
|
81
|
+
} else {
|
|
82
82
|
// Load image from the Meta-Store
|
|
83
|
-
icon = await this.adapter.readFileAsync(this.adapter.namespace, iconFileName);
|
|
83
|
+
const icon = await this.adapter.readFileAsync(this.adapter.namespace, iconFileName);
|
|
84
84
|
// Load Image Metadata
|
|
85
85
|
const origIconMeta = await sharp(icon.file).metadata();
|
|
86
86
|
// Check whether the image needs to be resized
|
|
87
87
|
if (
|
|
88
88
|
(origIconMeta.height && origIconMeta.height > imageSize) ||
|
|
89
|
-
|
|
89
|
+
(origIconMeta.width && origIconMeta.width > imageSize)
|
|
90
90
|
) {
|
|
91
91
|
// Resize image to 28x28 pixel
|
|
92
92
|
this.adapter.log.info(
|
|
@@ -103,12 +103,10 @@ class ImageController {
|
|
|
103
103
|
// Replace the original image with the resize image.
|
|
104
104
|
await this.adapter.writeFileAsync(this.adapter.namespace, iconFileName, icon.file);
|
|
105
105
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
return ''
|
|
106
|
+
|
|
107
|
+
// Create and output Base64
|
|
108
|
+
return `data:image/png;base64,${icon.file.toString('base64')}`;
|
|
109
109
|
}
|
|
110
|
-
// Create and output Base64
|
|
111
|
-
return `data:image/png;base64,${icon.file.toString('base64')}`;
|
|
112
110
|
}
|
|
113
111
|
getFileNameWithExtension(url) {
|
|
114
112
|
const path = new URL(url).pathname;
|
|
@@ -121,8 +119,10 @@ class ImageController {
|
|
|
121
119
|
try {
|
|
122
120
|
const res = await axios.get(url, { responseType: 'arraybuffer' });
|
|
123
121
|
await adapter.writeFileAsync(namespace, this.getFileNameWithExtension(url), res.data);
|
|
122
|
+
return true;
|
|
124
123
|
} catch (ex) {
|
|
125
|
-
adapter.log.warn(ex);
|
|
124
|
+
//adapter.log.warn(ex);
|
|
125
|
+
return false;
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
async getExistingIconFileName(z2mIconFileNameJPG, z2mIconFileNamePNG, slsIconFileName) {
|