iobroker.zigbee 1.10.2 → 1.10.11

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/io-package.json CHANGED
@@ -1,98 +1,98 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "zigbee",
4
- "version": "1.10.2",
4
+ "version": "1.10.11",
5
5
  "news": {
6
- "1.10.2": {
7
- "en": "dependency update",
8
- "de": "aktualisierung der abhängigkeit",
9
- "ru": "обновление",
10
- "pt": "atualização de dependência",
11
- "nl": "afhankelijkheidsupdate",
12
- "fr": "mise à jour de la dépendance",
13
- "it": "aggiornamento della dipendenza",
14
- "es": "actualización de la dependencia",
15
- "pl": "aktualizacja zależności",
16
- "uk": "оновлення залежності",
17
- "zh-cn": "依赖性更新"
6
+ "1.10.11": {
7
+ "en": "BREAKING CHANGE\n\nbugs : ChannelScan is currently not available\n\n\nfix linter errors\ndisable map display for deactivated devices\nnew option on map: disable physics interaction\nnew zigbee-herdsman-converters 20.28.0\nnew zigbee-herdsman 2.1.1\nAllow use of keyless converters (used for TuYa and compatible devices in zigbee-herdsman-converters\nswap from request to axios\ndelete groups works again",
8
+ "de": "VERWENDUNGSBEREICH\n\nbugs : ChannelScan ist derzeit nicht verfügbar\n\n\nlinterfehler beheben\nkartenanzeige für deaktivierte geräte deaktivieren\nneue option auf der karte: physik-interaktion deaktivieren\nneue zickbee-herdsman-konverter 20.28.0\nneuer zickbee-herdsman 2.1.1\nVerwenden von schlüssellosen Wandlern (für TuYa und kompatible Geräte in Zickbee-herdsman-Konverter verwendet)\nswap von anfrage an axios\nlöschen von gruppen funktioniert wieder",
9
+ "ru": "ОБМЕН\n\nжуки: ChannelScan в настоящее время не доступен\n\n\nисправление ошибок\nотключить отображение карты для деактивированных устройств\nновый вариант на карте: отключить взаимодействие физики\n20.28.0\n2.1.1\nПозволить использовать бесключевые конвертеры (используемые для TuYa и совместимые устройства в zigbee-herdsman-конвертерах\nсвопа от запроса к axios\nудалить группы снова",
10
+ "pt": "ALTERAÇÕES DE TRABALHO\n\nbugs : ChannelScan não está disponível\n\n\ncorrigir erros do linter\ndesativar a exibição do mapa para dispositivos desativados\nnova opção no mapa: desativar a interação física\nnovos conversores de zigbee-herdsman 20.28.0\nnovo zigbee-herdsman 2.1.1\nPermitir o uso de conversores sem chave (usado para TuYa e dispositivos compatíveis em conversores de zigbee-herdsman\nswap de pedido para axios\nexcluir grupos funciona novamente",
11
+ "nl": "BREAKING VERANDERING\n\nbugs: ChannelScan is momenteel niet beschikbaar\n\n\nrepareren linter fouten\nkaartweergave voor gedeactiveerde apparaten uitschakelen\nnieuwe optie op de kaart: interactie natuurkunde uitschakelen\nnieuwe zigbee-herdsman-converters 20.28.0\nnieuwe zigbee-herdsman 2.1.1\nGebruik van sleutelloze converters toestaan (gebruikt voor TuYa en compatibele apparaten in zigbee-herdsman-converters\nruil van verzoek naar axios\ngroepen opnieuw verwijderen",
12
+ "fr": "CHANGEMENT DE BREAING\n\nbugs : ChannelScan n'est actuellement pas disponible\n\n\ncorrection des erreurs linter\ndésactiver l'affichage de la carte pour les appareils désactivés\nnouvelle option sur la carte: désactiver l'interaction physique\nnouveaux convertisseurs zigbee-herdsman 20.28.0\nnouveau zigbee-herdsman 2.1.1\nPermettre l'utilisation de convertisseurs sans clé (utilisés pour TuYa et appareils compatibles dans les convertisseurs zigbee-herdsman-converters\néchange de la demande à l'axios\nsupprimer les groupes fonctionne à nouveau",
13
+ "it": "CAPITOLO DI RICERCA\n\nbugs: ChannelScan non è attualmente disponibile\n\n\ncorreggere gli errori di linter\ndisabilitare la visualizzazione della mappa per i dispositivi disattivati\nnuova opzione sulla mappa: disabilitare l'interazione fisica\nnuovo zigbee-herdsman-converters 20.28.0\nnuovo zigbee-herdsman 2.1.1\nConsentire l'uso di convertitori senza chiave (utilizzati per TuYa e dispositivi compatibili in zigbee-herdsman-converter\nswap da richiesta a assios\ncancellare i gruppi funziona di nuovo",
14
+ "es": "BREAKING CHANGE\n\nbugs : ChannelScan actualmente no está disponible\n\n\ncorrige errores de invierno\npantalla de mapa deshabilitado para dispositivos desactivados\nnueva opción en el mapa: la interacción física deshabilitada\nnuevos zigbee-herdsman-converters 20.28.0\nnuevo zigbee-herdsman 2.1.1\nPermitir el uso de convertidores sin llave (utilizados para TuYa y dispositivos compatibles en zigbee-herdsman-converters\nswap from request to axios\neliminar grupos funciona de nuevo",
15
+ "pl": "ZMIANA ZBIORCZA\n\nbłędy: ChannelScan jest obecnie niedostępny\n\n\nnaprawić błędy lintera\nwyłączyć wyświetlacz mapy dla wyłączonych urządzeń\nnowa opcja na mapie: wyłączenie interakcji fizyki\nnowe konwertery zigbee- herdsman- 20.28.0\nnowy zigbee-herdsman 2.1.1\nZezwalaj na stosowanie konwerterów bezklawiszowych (używanych dla TuYa i kompatybilnych urządzeń w konwerterach zigbee- herdsman-\nzamiana z wniosku na aksjos\nusuń grupy działa ponownie",
16
+ "uk": "БРЕАКІНГ ЗМІН\n\nпомилки : CanalScan наразі немає\n\n\nвиправлено помилки linter\nвідключення відображення карти для деактивованих пристроїв\nновий варіант на карті: відключена фізика взаємодія\nнові zigbee-herdsman-converters 20.28.0\nновий zigbee-herdsman 2.1.1\nДозволити використання без ключів конвертерів (використовується для TuYa та сумісних пристроїв в zigbee-herdsman-converters\nковтання від запиту в осях\nвидалити групи знову",
17
+ "zh-cn": "破坏变化\n\n错误 : 频道扫描目前不可用\n\n\n修正线性错误\n禁用已停用设备的地图显示\n地图上的新选项: 禁用物理交互\n新齐格比-牧民-转换器 20.28.0\n新齐格比牧民 2.1.1\n允许使用无密钥转换器( 用于 TuYa 和 Zigbee- herdsman- 转换器中的兼容设备)\n从请求转换为轴\n再次删除组工作"
18
18
  },
19
- "1.10.1": {
20
- "en": "Baudrate is now configurable. works ONLY with Deconz/Conbee( 38400 )\nadd nvbackup.json delete button",
21
- "de": "Baudrate ist jetzt konfigurierbar. funktioniert nur mit Deconz/Conbee( 38400 )\nnvbackup hinzufügen. json löschen taste",
22
- "ru": "Baudrate теперь настраиваемый. работает только с Deconz/Conbee (38400)\nдобавьте nvbackup. кнопка",
23
- "pt": "O Baudrate agora é configurável. funciona somente com Deconz/Conbee( 38400 )\nadicionar nvbackup. botão de exclusão json",
24
- "nl": "Baudrate is nu configureerbaar. ALLEEN werkt met Deconz/Conbee( 38400 )\nnvbackup toevoegen. json delete knop",
25
- "fr": "Baudrate est maintenant configurable. fonctionne uniquement avec Decanz/Conbee( 38400 )\najouter nvbackup. bouton de suppression de json",
26
- "it": "Baudrate è ora configurabile. funziona SOLO con Deconz/Conbee( 38400 )\naggiungere nvbackup. pulsante di cancellazione json",
27
- "es": "Baudrate es ahora configurable. sólo funciona con Deconz/Conbee( 38400 )\nañadir nvbackup. json delete botón",
28
- "pl": "Baudrate jest teraz konfigurowalny. działa tylko z Deconz / Conbee (38400)\ndodaj nvbackup. json usuń przycisk",
29
- "uk": "Baudrate тепер конфігурується. працює ONLY з Deconz/Conbee( 38400 )\nдодати nvbackup. json видалити кнопка",
30
- "zh-cn": "鲍德拉特现在可塑. 仅与Deconz/Conbee(38400)合作\n添加 nv 备份。 json 删除按钮"
19
+ "1.10.10": {
20
+ "en": "core update\ndependency update",
21
+ "de": "kern-update\naktualisierung der abhängigkeit",
22
+ "ru": "обновление\nобновление",
23
+ "pt": "atualização do núcleo\natualização de dependência",
24
+ "nl": "kernupdate\nafhankelijkheidsupdate",
25
+ "fr": "mise à jour de base\nmise à jour de la dépendance",
26
+ "it": "aggiornamento del core\naggiornamento della dipendenza",
27
+ "es": "actualización básica\nactualización de la dependencia",
28
+ "pl": "podstawowa aktualizacja\naktualizacja zależności",
29
+ "uk": "оновлення ядра\nоновлення залежності",
30
+ "zh-cn": "核心更新\n依赖性更新"
31
31
  },
32
- "1.10.0": {
33
- "en": "new zigbee-herdsman-converters 18.x\nconfigure message is now a warning",
34
- "de": "neue zickbee-herdsman-konverter 18.x\nkonfigurieren von meldungen",
35
- "ru": "новые зигби-гердсман-конвертеры 18.x\nнастройка сообщения - это предупреждение",
36
- "pt": "novos conversores de zigbee-herdsman 18.x\nconfigurar a mensagem é agora um aviso",
37
- "nl": "nieuwe zigbee-herdsman-converters 18.x\nconfigureren bericht is nu een waarschuwing",
38
- "fr": "nouveaux convertisseurs zigbee-herdsman 18.x\nconfigure message est maintenant un avertissement",
39
- "it": "nuovo zigbee-herdsman-converter 18.x\nconfigurare il messaggio è ora un avviso",
40
- "es": "nuevos zigbee-herdsman-converters 18.x\nmensaje de configuración es ahora una advertencia",
41
- "pl": "nowe konwertery zigbee- herdsman- 18 x\nkonfiguracja wiadomości jest teraz ostrzeżeniem",
42
- "uk": "новий zigbee-herdsman-converters 18.х\nналаштування повідомлення тепер попередження",
43
- "zh-cn": "新的 zigbee- herdsman- 转换器 18.x 电话\n配置信件现在是警告"
32
+ "1.10.9": {
33
+ "en": "typo admin settings\neslint config",
34
+ "de": "typo admin einstellungen\neslint config",
35
+ "ru": "настройки admin\neslint config",
36
+ "pt": "configurações de administração do tipo\neslint config",
37
+ "nl": "typo admin instellingen\neslint config",
38
+ "fr": "paramètres d'administration typo\nconfig eslint",
39
+ "it": "impostazioni dell'amministratore\neslint config",
40
+ "es": "configuración de administración de tipo\neslint config",
41
+ "pl": "ustawienia admin typo\neslint config",
42
+ "uk": "параметри адміністратора\neslint config",
43
+ "zh-cn": "类型管理员设置\n埃斯林特配置"
44
44
  },
45
- "1.9.7": {
46
- "en": "corr configure for some devices",
47
- "de": "corr konfigurieren für einige geräte",
48
- "ru": "для некоторых устройств",
49
- "pt": "corr configurar para alguns dispositivos",
50
- "nl": "corr instellen voor sommige apparaten",
51
- "fr": "corr configure pour certains appareils",
52
- "it": "corr configurare per alcuni dispositivi",
53
- "es": "configuración de corr para algunos dispositivos",
54
- "pl": "configure corr dla niektórych urządzeń",
55
- "uk": "налаштовувати корр для деяких пристроїв",
56
- "zh-cn": "一些设备的corr配置"
45
+ "1.10.8": {
46
+ "en": "corr admin settings\nadd new eslint version\n",
47
+ "de": "korr admin einstellungen\nneue eslint-version hinzufügen\n",
48
+ "ru": "настройки администрирования\nдобавить новую версию eslint\n",
49
+ "pt": "configurações de administração de corrimento\nadicionar nova versão eslint\n",
50
+ "nl": "corr admin instellingen\nnieuwe eslint versie toevoegen\n",
51
+ "fr": "paramètres d'administration corr\najouter une nouvelle version eslint\n",
52
+ "it": "impostazioni dell'amministratore\naggiungere nuova versione eslint\n",
53
+ "es": "configuración de administración de corr\nañadir nueva versión eslint\n",
54
+ "pl": "ustawienia admin corr\ndodaj nową wersję eslint\n",
55
+ "uk": "корр налаштування адміністратора\nдодати нову версію eslint\n",
56
+ "zh-cn": "corr 管理员设置\n添加新的 eslint 版本\n"
57
57
  },
58
- "1.9.6": {
59
- "en": "corr ikea bug \ntrv child lock works",
60
- "de": "corr ikea bug\nkinderschlösser funktioniert",
61
- "ru": "корр ikea баг\ntrv детские замки работает",
62
- "pt": "corr ikea bug\ntrabalhos de bloqueio de crianças",
63
- "nl": "_\nhet kinderslot werkt",
64
- "fr": "corr ikea bug\nverrouillage enfant trv fonctionne",
65
- "it": "corr ikea bug\ntrv bambino serratura lavori",
66
- "es": "corr ikea bug\ntrv niño cerradura funciona",
67
- "pl": "kor ikea bug\npracuje w trv childlock",
68
- "uk": "ikea помилка\ntrv дитячих замків",
69
- "zh-cn": "绑架\n "
58
+ "1.10.7": {
59
+ "en": "add flow control option \nadd new NewHerdsman\nadd new ezsp coordinator Firmware (7.4.1.0)",
60
+ "de": "möglichkeit der durchflussregelung\nneues hinzufügen NewHerdsman\nezsp Koordinator Firmware hinzufügen (7.4.1.0)",
61
+ "ru": "добавить параметр управления потоком\nдобавить новый NewHerdsman\nдобавить новый координатор ezsp Firmware (7.4.1.0)",
62
+ "pt": "adicionar opção de controle de fluxo\nadicionar novo NewHerdsman\nadicionar novo coordenador ezsp Firmware (7.4.1.0)",
63
+ "nl": "flow control optie toevoegen\nnieuwe NewHerdsman toevoegen\nnieuwe ezsp coördinator Firmware (7.4.1.0) toevoegen",
64
+ "fr": "ajouter l'option de contrôle du débit\najouter un nouveau NewHerdsman\najouter un nouveau logiciel ezsp coordinator (7.4.1.0)",
65
+ "it": "aggiungere opzione di controllo del flusso\naggiungere nuovo NewHerdsman\naggiungere nuovo coordinatore ezsp Firmware (7.4.1.0)",
66
+ "es": "añadir opción de control de flujo\nañadir nuevo NewHerdsman\nañadir nuevo coordinador de ezsp Firmware (7.4.1.0)",
67
+ "pl": "dodaj opcję kontroli przepływu\ndodaj nowy NewHerdsman\ndodaj nowego koordynatora ezsp Firmware (7.4.1.0)",
68
+ "uk": "додати варіант контролю потоку\nдодати новийHerdsman\nadd new ezsp manager Прошивка (7.4.1.0)",
69
+ "zh-cn": "添加流量控制选项\n添加新赫兹曼\n添加新的 ezsp 协调员 Firmware (7.4.1.0)"
70
70
  },
71
- "1.9.5": {
72
- "en": "update dependency\nmin node 18.x.",
73
- "de": "aktualisierung abhängigkeit\nmin node 18.x.",
74
- "ru": "обновление зависимости\nмин. нода 18.x.",
75
- "pt": "dependência de atualização\nmin node 18.x.",
76
- "nl": "vertaling:\n_.",
77
- "fr": "mettre à jour la dépendance\nmin node 18.x.",
78
- "it": "dipendenza da aggiornamento\nmin nodo 18.x.",
79
- "es": "actualización de la dependencia\nmin node 18.x.",
80
- "pl": "zależności\nwęzeł 18.x.",
81
- "uk": "оновлення залежності\nхв вузол 18.x.",
82
- "zh-cn": "更新\n第18.x条."
71
+ "1.10.6": {
72
+ "en": "core update\ndependency update",
73
+ "de": "kern-update\naktualisierung der abhängigkeit",
74
+ "ru": "обновление\nобновление",
75
+ "pt": "atualização do núcleo\natualização de dependência",
76
+ "nl": "kernupdate\nafhankelijkheidsupdate",
77
+ "fr": "mise à jour de base\nmise à jour de la dépendance",
78
+ "it": "aggiornamento del core\naggiornamento della dipendenza",
79
+ "es": "actualización básica\nactualización de la dependencia",
80
+ "pl": "podstawowa aktualizacja\naktualizacja zależności",
81
+ "uk": "оновлення ядра\nоновлення залежності",
82
+ "zh-cn": "核心更新\n依赖性更新"
83
83
  },
84
- "1.9.4": {
85
- "en": "typo",
86
- "de": "typo",
87
- "ru": "тип",
88
- "pt": "tipo",
89
- "nl": "type",
90
- "fr": "type",
91
- "it": "tipo",
92
- "es": "tipo",
93
- "pl": "typ",
94
- "uk": "тип",
95
- "zh-cn": "类型"
84
+ "1.10.5": {
85
+ "en": "icon ota device update\nicon fix",
86
+ "de": "icon ota device update\nsymbol fix",
87
+ "ru": "обновление значок ota\nзначок",
88
+ "pt": "atualização do dispositivo do ícone ota\ncorreção do ícone",
89
+ "nl": "pictogram ota apparaat update\npictogramfix",
90
+ "fr": "icône ota mise à jour du périphérique\ncorrection de l'icône",
91
+ "it": "icona ota aggiornamento del dispositivo\nicona fix",
92
+ "es": "icono ota actualización del dispositivo\nicono de fijación",
93
+ "pl": "icon ota aktualizacji urządzenia\nikona fix",
94
+ "uk": "ota пристрій оновлення\nфіксатор ікони",
95
+ "zh-cn": "图标 ota 设备更新\n图标修复"
96
96
  }
97
97
  },
98
98
  "titleLang": {
@@ -121,10 +121,17 @@
121
121
  "pl": "Adapter Zigbee do urządzeń Xiaomi (i innych) za pośrednictwem Chip cc26xx/cc25xx",
122
122
  "zh-cn": "适用于小米(和其他)设备的Zigbee适配器,通过Chip cc26xx/cc25xx"
123
123
  },
124
+ "docs": {
125
+ "en": "docs/en/readme.md",
126
+ "de": "docs/en/readme.md"
127
+ },
124
128
  "authors": [
125
129
  "Kirov Ilya<kirovilya@gmail.com>"
126
130
  ],
127
- "license": "MIT",
131
+ "licenseInformation": {
132
+ "license": "MIT",
133
+ "type": "free"
134
+ },
128
135
  "platform": "Javascript/Node.js",
129
136
  "mode": "daemon",
130
137
  "icon": "zigbee.png",
@@ -144,15 +151,17 @@
144
151
  "readme": "https://github.com/ioBroker/ioBroker.zigbee/blob/master/README.md",
145
152
  "loglevel": "info",
146
153
  "type": "hardware",
147
- "materialize": true,
148
154
  "supportedMessages": {
149
155
  "deviceManager": true
150
156
  },
157
+ "adminUI": {
158
+ "config": "materialize",
159
+ "tab": "materialize"
160
+ },
151
161
  "messagebox": true,
152
162
  "stopBeforeUpdate": true,
153
163
  "dataFolder": "zigbee_%INSTANCE%",
154
164
  "compact": true,
155
- "materializeTab": true,
156
165
  "connectionType": "local",
157
166
  "dataSource": "push",
158
167
  "tier": 2,
@@ -191,8 +200,8 @@
191
200
  "condition": {
192
201
  "operand": "and",
193
202
  "rules": [
194
- "oldVersion<=1.8.22",
195
- "newVersion>=1.8.24"
203
+ "oldVersion<=1.10.3",
204
+ "newVersion>=1.10.10"
196
205
  ]
197
206
  },
198
207
  "title": {
@@ -208,16 +217,17 @@
208
217
  "zh-cn": "重要通知!"
209
218
  },
210
219
  "text": {
211
- "en": "This new version use exposes for Aqara Button WXKG01LM. Plz select this device into exposes/Auschliessen tab",
212
- "ru": "Эта новая версия использует экспозиции для Aqara Button WXKG01LM. Пожалуйста, выберите это устройство в exposes/Auschliessen tab",
213
- "pt": "Esta nova versão usa expões para Aqara Button WXKG01LM. Por favor, selecione este dispositivo no separador exposes/Auschliessen",
214
- "nl": "Deze nieuwe versie gebruikt blootstellingen voor Aqara Button WXK01LM. Kies alsjeblieft dit apparaat uit in de openbare aanklagers",
215
- "fr": "Cette nouvelle version utilise pour Aqara Button WXKG01LM. Veuillez sélectionner cet appareil dans l'onglet Affichage/Auschliessen",
216
- "it": "Questa nuova versione utilizza per Aqara Button WXKG01LM. Si prega di selezionare questo dispositivo per exposes/Auschliessen scheda",
217
- "es": "Este nuevo uso expone para Aqara Button WXKG01LM. Por favor, seleccione este dispositivo en la pestaña exposes/Auschliessen",
218
- "pl": "Nowa wersja została udostępniona dla zmian Aqary Button WXKG01LM. Prosze dodać to do exposes/Auschliessen tabsena",
219
- "uk": "Ця нова версія використовується для кнопки Aqara Button WXKG01LM. Будь ласка, оберіть цей пристрій у вкладці ",
220
- "zh-cn": "这一新版本用于Aqara Button WXKG01LM。 请选择这一装置暴露/Auschliessen tab"
220
+ "en": "\"BREAKING CHANGE. after update to this Version you can't go back to Version <= 1.10.3. Only option is your Backup",
221
+ "de": "\"BREAKING CHANGE. nach dem Update könnt ihr nicht zurück zu einer Version <= 1.10.3. Es geht nur per ioBroker Backup was hoffentlich gemacht habt",
222
+ "ru": "\"Изменяюсь. После обновления этой версии вы не можете вернуться к версии <= 1.10.3. Единственный вариант - это ваша резервная копия",
223
+ "pt": "\"BREAKING CHANGE. após a atualização para esta versão você não pode voltar para Versão <= 1.10.3. A única opção é o seu Backup",
224
+ "nl": "\"Verandering. Na update naar deze versie kun je niet meer terug naar versie <= 1.10.3. De enige optie is uw back-up",
225
+ "fr": "\"C'est le changement. après la mise à jour de cette version, vous ne pouvez pas retourner à la version <= 1.10.3. Seule option est votre sauvegarde",
226
+ "it": "\"Cambiare il cambiamento. dopo l'aggiornamento a questa versione non si può tornare alla versione <= 1.10.3. Solo l'opzione è il backup",
227
+ "es": "\"Cambiando. después de la actualización a esta versión no puede volver a la versión 0 = 1.10.3. La única opción es tu Backup",
228
+ "pl": "\"ZMIENIONA ZMIANA. po aktualizacji do tej wersji nie można wrócić do wersji < = 1.10.3. Jedyną opcją jest kopia zapasowa",
229
+ "uk": "\"Бреагування ЗМІНИ. після оновлення цієї версії ви не можете повернутися до версії <= 1.10.3. Тільки варіант - Ваш Резервне копіювання",
230
+ "zh-cn": "\"呼吸变化。 更新到此版本后, 您不能返回到 QQ 1. 10. 3. 版本 。 唯一的选项是您的备份"
221
231
  },
222
232
  "link": "https://github.com/ioBroker/ioBroker.zigbee/blob/master/README.md",
223
233
  "level": "warn",
@@ -255,7 +265,8 @@
255
265
  "external": "",
256
266
  "startWithInconsistent": false,
257
267
  "warnOnDeviceAnnouncement": true,
258
- "baudRate": 115200
268
+ "baudRate": 115200,
269
+ "flowCTRL": false
259
270
  },
260
271
  "instanceObjects": [
261
272
  {
package/lib/backup.js CHANGED
@@ -117,7 +117,6 @@ class Backup {
117
117
  }
118
118
  }
119
119
 
120
- // eslint-disable-next-line no-unused-vars
121
120
  delBackupsFiles(options, files) {
122
121
  const arr = files.length;
123
122
  if (arr > 10) {
@@ -134,7 +133,7 @@ class Backup {
134
133
  }
135
134
  }
136
135
 
137
- // eslint-disable-next-line no-unused-vars
136
+
138
137
  async listbackups(obj) {
139
138
 
140
139
  }
package/lib/binding.js CHANGED
@@ -43,32 +43,34 @@ class Binding {
43
43
  * @param {ioBroker.Message} obj
44
44
  */
45
45
  onMessage(obj) {
46
- if (typeof obj === 'object' && obj.command) {
47
- switch (obj.command) {
48
- case 'addBinding':
49
- if (obj && obj.message && typeof obj.message === 'object') {
50
- this.addBinding(obj.from, obj.command, obj.message, err =>
51
- this.adapter.sendTo(obj.from, obj.command, err, obj.callback));
52
- }
53
- break;
54
- case 'editBinding':
55
- if (obj && obj.message && typeof obj.message === 'object') {
56
- this.editBinding(obj.from, obj.command, obj.message, err =>
57
- this.adapter.sendTo(obj.from, obj.command, err, obj.callback));
58
- }
59
- break;
60
- case 'getBinding':
61
- if (obj && obj.message && typeof obj.message === 'object') {
62
- this.getBinding(binding =>
63
- this.adapter.sendTo(obj.from, obj.command, binding, obj.callback));
64
- }
65
- break;
66
- case 'delBinding':
67
- if (obj && obj.message) {
68
- this.delBinding(obj.from, obj.command, obj.message, err =>
69
- this.adapter.sendTo(obj.from, obj.command, err, obj.callback));
70
- }
71
- break;
46
+ if (obj) {
47
+ if (typeof obj === 'object' && obj.command) {
48
+ switch (obj.command) {
49
+ case 'addBinding':
50
+ if (obj.message && typeof obj.message === 'object') {
51
+ this.addBinding(obj.from, obj.command, obj.message, err =>
52
+ this.adapter.sendTo(obj.from, obj.command, err, obj.callback));
53
+ }
54
+ break;
55
+ case 'editBinding':
56
+ if (obj.message && typeof obj.message === 'object') {
57
+ this.editBinding(obj.from, obj.command, obj.message, err =>
58
+ this.adapter.sendTo(obj.from, obj.command, err, obj.callback));
59
+ }
60
+ break;
61
+ case 'getBinding':
62
+ if (obj.message && typeof obj.message === 'object') {
63
+ this.getBinding(binding =>
64
+ this.adapter.sendTo(obj.from, obj.command, binding, obj.callback));
65
+ }
66
+ break;
67
+ case 'delBinding':
68
+ if (obj.message) {
69
+ this.delBinding(obj.from, obj.command, obj.message, err =>
70
+ this.adapter.sendTo(obj.from, obj.command, err, obj.callback));
71
+ }
72
+ break;
73
+ }
72
74
  }
73
75
  }
74
76
  }
package/lib/commands.js CHANGED
@@ -46,73 +46,75 @@ class Commands {
46
46
  * @param {ioBroker.Message} obj
47
47
  */
48
48
  onMessage(obj) {
49
- if (typeof obj === 'object' && obj.command) {
50
- switch (obj.command) {
51
- case 'reset':
52
- if (obj && obj.message && obj.message.mode == 'delNvbackup') {
53
- this.delNvBackup(obj.from, obj.command, obj.message, obj.callback);
54
- }
55
- break;
56
- case 'letsPairing':
57
- if (obj && obj.message && typeof obj.message === 'object') {
58
- this.letsPairing(obj.from, obj.command, obj.message, obj.callback);
59
- }
60
- break;
61
- case 'touchlinkReset':
62
- if (obj && obj.message && typeof obj.message === 'object') {
63
- this.touchlinkReset(obj.from, obj.command, obj.message, obj.callback);
64
- }
65
- break;
66
- case 'getDevices':
67
- if (obj && obj.message && typeof obj.message === 'object') {
68
- this.getDevices(obj.from, obj.command, null, obj.callback);
69
- }
70
- break;
71
- case 'renameDevice':
72
- if (obj && obj.message && typeof obj.message === 'object') {
73
- this.renameDevice(obj.from, obj.command, obj.message, obj.callback);
74
- }
75
- break;
76
- case 'deleteDevice':
77
- if (obj && obj.message && typeof obj.message === 'object') {
78
- this.deleteDevice(obj.from, obj.command, obj.message, obj.callback);
79
- }
80
- break;
81
- case 'getChannels':
82
- if (obj && obj.message && typeof obj.message === 'object') {
83
- this.getChannels(obj.from, obj.command, obj.message, obj.callback);
84
- }
85
- break;
86
- case 'getCoordinatorInfo':
87
- if (obj && obj.message && typeof obj.message === 'object') {
88
- this.getCoordinatorInfo(obj.from, obj.command, obj.callback);
89
- }
90
- break;
91
- case 'cleanDeviceStates':
92
- if (obj && obj.message && typeof obj.message === 'object') {
93
- this.cleanDeviceStates(obj.from, obj.command, obj.message, obj.callback);
94
- }
95
- break;
96
- case 'setState':
97
- if (obj && obj.message && typeof obj.message === 'object' && obj.message.id) {
98
- this.stController.setState_typed(obj.message.id, obj.message.val, false, undefined, obj.callback);
99
- }
100
- break;
101
- case 'getDevice':
102
- if (obj && obj.message && typeof obj.message === 'object' && obj.message.id) {
103
- this.getDevices(obj.from, obj.command, obj.message.id, obj.callback);
104
- }
105
- break;
106
- case 'reconfigure':
107
- if (obj && obj.message && typeof obj.message === 'object') {
108
- this.reconfigure(obj.from, obj.command, obj.message, obj.callback);
109
- }
110
- break;
111
- case 'setDeviceActivated':
112
- if (obj && obj.message && typeof obj.message === 'object') {
113
- this.setDeviceActivated(obj.from, obj.command, obj.message, obj.callback);
114
- }
115
- break;
49
+ if (obj) {
50
+ if (typeof obj === 'object' && obj.command) {
51
+ switch (obj.command) {
52
+ case 'reset':
53
+ if (obj.message && obj.message.mode == 'delNvbackup') {
54
+ this.delNvBackup(obj.from, obj.command, obj.message, obj.callback);
55
+ }
56
+ break;
57
+ case 'letsPairing':
58
+ if (obj.message && typeof obj.message === 'object') {
59
+ this.letsPairing(obj.from, obj.command, obj.message, obj.callback);
60
+ }
61
+ break;
62
+ case 'touchlinkReset':
63
+ if (obj.message && typeof obj.message === 'object') {
64
+ this.touchlinkReset(obj.from, obj.command, obj.message, obj.callback);
65
+ }
66
+ break;
67
+ case 'getDevices':
68
+ if (obj.message && typeof obj.message === 'object') {
69
+ this.getDevices(obj.from, obj.command, null, obj.callback);
70
+ }
71
+ break;
72
+ case 'renameDevice':
73
+ if (obj.message && typeof obj.message === 'object') {
74
+ this.renameDevice(obj.from, obj.command, obj.message, obj.callback);
75
+ }
76
+ break;
77
+ case 'deleteDevice':
78
+ if (obj.message && typeof obj.message === 'object') {
79
+ this.deleteDevice(obj.from, obj.command, obj.message, obj.callback);
80
+ }
81
+ break;
82
+ case 'getChannels':
83
+ if (obj.message && typeof obj.message === 'object') {
84
+ this.getChannels(obj.from, obj.command, obj.message, obj.callback);
85
+ }
86
+ break;
87
+ case 'getCoordinatorInfo':
88
+ if (obj && obj.message && typeof obj.message === 'object') {
89
+ this.getCoordinatorInfo(obj.from, obj.command, obj.callback);
90
+ }
91
+ break;
92
+ case 'cleanDeviceStates':
93
+ if (obj.message && typeof obj.message === 'object') {
94
+ this.cleanDeviceStates(obj.from, obj.command, obj.message, obj.callback);
95
+ }
96
+ break;
97
+ case 'setState':
98
+ if (obj.message && typeof obj.message === 'object' && obj.message.id) {
99
+ this.stController.setState_typed(obj.message.id, obj.message.val, false, undefined, obj.callback);
100
+ }
101
+ break;
102
+ case 'getDevice':
103
+ if (obj.message && typeof obj.message === 'object' && obj.message.id) {
104
+ this.getDevices(obj.from, obj.command, obj.message.id, obj.callback);
105
+ }
106
+ break;
107
+ case 'reconfigure':
108
+ if (obj.message && typeof obj.message === 'object') {
109
+ this.reconfigure(obj.from, obj.command, obj.message, obj.callback);
110
+ }
111
+ break;
112
+ case 'setDeviceActivated':
113
+ if (obj.message && typeof obj.message === 'object') {
114
+ this.setDeviceActivated(obj.from, obj.command, obj.message, obj.callback);
115
+ }
116
+ break;
117
+ }
116
118
  }
117
119
  }
118
120
  }
@@ -132,8 +134,10 @@ class Commands {
132
134
  if (this.zbController) {
133
135
  let devId = '';
134
136
  if (message) {
135
- if (message.id) devId = getZbId(message.id);
136
- if (message.code) {
137
+ if (message.id && message.id != undefined) {
138
+ devId = getZbId(message.id);
139
+ }
140
+ if (message.code && message.code != undefined) {
137
141
  try {
138
142
  this.debug(`letsPairing called with code ${message.code}`);
139
143
  const success = await this.zbController.addPairingCode(message.code);
@@ -273,19 +277,20 @@ class Commands {
273
277
  // get group members and store them
274
278
  const match = /zigbee.\d.group_([0-9]+)/.exec(devInfo._id);
275
279
  if (match && match.length > 1) {
276
- const groupmembers = await this.zbController.getGroupMembersFromController(match[1]);
277
- this.debug(`group members: ${JSON.stringify(groupmembers)}`);
280
+ const groupID = Number(match[1]);
281
+ const groupmembers = await this.zbController.getGroupMembersFromController(groupID);
282
+ this.debug(`group members for group ${groupID}: ${JSON.stringify(groupmembers)}`);
278
283
  if (groupmembers && groupmembers.length > 0) {
279
284
  const memberinfo = [];
280
285
  for (const member of groupmembers) {
281
286
  if (groups) {
282
287
  const grouparray = groups[member.ieee];
283
288
  if (grouparray) {
284
- if (!grouparray.includes(match[1])) {
285
- groups[member.ieee].push(match[1]);
289
+ if (!grouparray.includes(groupID)) {
290
+ groups[member.ieee].push(groupID);
286
291
  }
287
292
  } else {
288
- groups[member.ieee] = [match[1]];
293
+ groups[member.ieee] = [groupID];
289
294
  }
290
295
  }
291
296
  const device = await this.adapter.getObjectAsync(`${this.adapter.namespace}.${member.ieee.substr(2)}`);
package/lib/developer.js CHANGED
@@ -31,6 +31,10 @@ class Developer {
31
31
  this.adapter.log.debug(msg);
32
32
  }
33
33
 
34
+ warn(msg) {
35
+ this.adapter.log.warn(msg);
36
+ }
37
+
34
38
  /**
35
39
  * @param {ioBroker.Message} obj
36
40
  */
@@ -57,7 +61,7 @@ class Developer {
57
61
  const zcl = ZigbeeHerdsman.Zcl;
58
62
  const result = {};
59
63
  if (key === 'cidList') {
60
- result.list = zcl.Cluster;
64
+ result.list = zcl.Clusters;
61
65
  } else if (key === 'attrIdList') {
62
66
  const cid = obj.message.cid;
63
67
  result.list = zcl.Utils.getCluster(cid).attributes;
@@ -133,7 +137,7 @@ class Developer {
133
137
  // report exceptions
134
138
  // happens for example if user tries to send write command but did not provide value/type
135
139
  // or unsupported attribute was addressed.
136
- const ZclStatusError = require('zigbee-herdsman/dist/zcl/zclStatusError').default;
140
+ const ZclStatusError = require('zigbee-herdsman/dist/zspec/zcl/zclStatusError').ZclStatusError;
137
141
  if (exception instanceof ZclStatusError) {
138
142
  const result = {};
139
143
  result.msg = `Zigbee error ${exception.code} received!`;