iobroker.zigbee 1.8.1 → 1.8.5
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 +34 -8
- package/admin/admin.js +31 -28
- package/admin/i18n/de/translations.json +2 -2
- package/admin/index_m.html +1171 -1001
- package/admin/words.js +2 -2
- package/io-package.json +34 -49
- package/lib/commands.js +1 -1
- package/lib/devices.js +3 -3
- package/lib/zigbeecontroller.js +25 -26
- package/main.js +9 -10
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -10,12 +10,17 @@
|
|
|
10
10
|
[](https://www.npmjs.com/package/iobroker.zigbee)
|
|
11
11
|
|
|
12
12
|
## ioBroker adapter for Zigbee devices via TI cc2531/cc2530/cc26x2r/cc2538 and deCONZ ConBee/RaspBee.
|
|
13
|
-
|
|
13
|
+
|
|
14
|
+
With the Zigbee-coordinator based on Texas Instruments SoC, deCONZ ConBee/RaspBee modules, Silicon Labs EZSP v8 or ZIGate USB-TTL it creates its own zigbee-network, into which zigbee-devices are connected. By work directly with the coordinator, the driver allows you to manage devices without additional application / gateways / bridge from device manufacturers (Xiaomi / TRADFRI / Hue / Tuya). About the device Zigbee-network can be read [here (in English)](https://www.zigbee2mqtt.io/information/zigbee_network.html).
|
|
14
15
|
|
|
15
16
|
## Hardware
|
|
17
|
+
|
|
18
|
+
|
|
16
19
|
One coordinator device is required for each zigbee Adapter instance. The device must be flashed with the respective coordinator firmware. A list of supported coordinators, the necessary equipment for the firmware and the device preparation process for different coordinator devices are described [here (in English)](https://www.zigbee2mqtt.io/guide/adapters/) or [here (in Russian)](https://myzigbee.ru/books/%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B8/page/%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0-cc2531cc2530)
|
|
17
20
|
|
|
21
|
+
|
|
18
22
|
### Texas Instruments SoC
|
|
23
|
+
|
|
19
24
|
Recommended devices are based on either the CC2652 or CC1352 chip. Devices based on cc253x chips are still supported but are no longer recommended.
|
|
20
25
|
Only CC26xx/cc1352/cc2538 Devices support extraction of the NVRam backup which should allow to swap coordinator hardware without having to reconnect all zigbee devices to the network.
|
|
21
26
|
Current firmware files for these devices can be found [on GitHub](https://github.com/Koenkk/Z-Stack-firmware)
|
|
@@ -27,7 +32,9 @@ Current firmware files for these devices can be found [on GitHub](https://github
|
|
|
27
32
|
<span><img src="docs/de/img/CC2538_CC2592_PA.PNG" width="100"></span>
|
|
28
33
|
<span><img src="docs/de/img/cc26x2r.PNG" width="100"></span>
|
|
29
34
|
|
|
35
|
+
|
|
30
36
|
### Dresden Elektronik SoC
|
|
37
|
+
|
|
31
38
|
<span><img src="docs/en/img/deconz.png"></span>
|
|
32
39
|
|
|
33
40
|
recommended:
|
|
@@ -38,18 +45,23 @@ no longer recommended:
|
|
|
38
45
|
- ConBee I
|
|
39
46
|
- RaspBee
|
|
40
47
|
|
|
41
|
-
While
|
|
48
|
+
While Conbee/RaspBee Support is no longer considered experimental in the zigbee-herdsman and zigbee-herdsman-converters libraries used by the zigbee Adapter, use of these devices with the adapter may limit functionality. Known issues are:
|
|
42
49
|
- link quality display may be incorrect
|
|
43
50
|
- device map metrics may be incorrect
|
|
44
51
|
- NVRam Backup is not supported.
|
|
45
52
|
|
|
46
53
|
### Silicon Labs SoC
|
|
47
|
-
|
|
54
|
+
|
|
55
|
+
Support for [Silicon Lab Zigbee](https://www.silabs.com/wireless/zigbee) based adapters is experimental. The initial support for EZSP v8 is still not yet considered stable and the project is in need of more developers volenteering to help with this integration. Please refer to the respective documentation on [this page](https://www.zigbee2mqtt.io/guide/adapters/) and [ongoing development discussion](https://github.com/Koenkk/zigbee-herdsman/issues/319) with regards to the state of Silabs EmberZNet Serial Protocol (EZSP) adapter implementation integration into the zigbee-herdsman and zigbee-herdsman-converters libraries which it depends on.
|
|
56
|
+
|
|
48
57
|
|
|
49
58
|
### ZiGate SoC
|
|
50
|
-
|
|
59
|
+
|
|
60
|
+
Support for [ZiGate](https://zigate.fr) based adapters is experimental. The initial support for ZiGate is still not yet considered stable and the project is in need of more developers volenteering to help with this integration. Please refer to the respective documentation on [this page](https://www.zigbee2mqtt.io/guide/adapters/) and [ongoing development discussion](https://github.com/Koenkk/zigbee-herdsman/issues/242) with regards to the state of ZiGate adapter implementation into the zigbee-herdsman and zigbee-herdsman-converters libraries which it depends on.
|
|
61
|
+
|
|
51
62
|
|
|
52
63
|
## Work with adapter
|
|
64
|
+
|
|
53
65
|

|
|
54
66
|
|
|
55
67
|
To start the driver, you must specify the name of the port on which the Zigbee-module (stick) is connected. Usually this is the port `/dev/ttyACM0` or `/dev/ttyUSB0` for the UART-connection. Or you can find with `ls -l /dev/serial/by-id` the device direct.
|
|
@@ -57,6 +69,7 @@ To start the driver, you must specify the name of the port on which the Zigbee-m
|
|
|
57
69
|
open the settings and change port
|
|
58
70
|

|
|
59
71
|
|
|
72
|
+
|
|
60
73
|
For Windows this will be the COM port number.
|
|
61
74
|
|
|
62
75
|
Starting from version 1.0.0 you can also use *tcp connection* for cases using esp8266 (or other microcontrollers) as serial-bridge. For example `tcp://192.168.1.46:8880`. Read more info here https://www.zigbee2mqtt.io/information/connecting_cc2530#via-an-esp8266
|
|
@@ -79,14 +92,18 @@ It is a Zigbee feature, intended for example to switch bulbs synchronized. Assig
|
|
|
79
92
|
|
|
80
93
|
Note: Not all devices support groups (not supported by end devices like sensors).
|
|
81
94
|
|
|
95
|
+
|
|
82
96
|
### Binding
|
|
97
|
+
|
|
83
98
|
https://www.zigbee2mqtt.io/information/binding
|
|
84
99
|
|
|
85
100
|
### Developer Tab
|
|
86
|
-
|
|
101
|
+
|
|
102
|
+
This is a tool for advanced users to test currently unsupported devices or enhance this adapters functionality. More instructions can be found on tab.
|
|
87
103
|

|
|
88
104
|
|
|
89
105
|
## Additional info
|
|
106
|
+
|
|
90
107
|
There is a [friendly project](https://github.com/koenkk/zigbee2mqtt) with similar functionality on the same technologies, where you can work with the same devices using the MQTT protocol. Therefore, if any improvements or support for new zigbee-devices occur in the Zigbee2MQTT project, we can transfer and add the same functionality to this adapter. If you notice this, then write the issue - we'll postpone it.
|
|
91
108
|
|
|
92
109
|
There are knowledge bases that can be useful for working with Zigbee-devices and equipment:
|
|
@@ -94,9 +111,11 @@ There are knowledge bases that can be useful for working with Zigbee-devices and
|
|
|
94
111
|
* in Russian https://myzigbee.ru/
|
|
95
112
|
|
|
96
113
|
## Supported devices
|
|
114
|
+
|
|
97
115
|
Works with devices from this list https://github.com/ioBroker/ioBroker.zigbee/wiki/Supported-devices
|
|
98
116
|
|
|
99
117
|
## Donate
|
|
118
|
+
|
|
100
119
|
You can thank the authors by these links:
|
|
101
120
|
* to Kirov Ilya https://www.paypal.me/goofyk
|
|
102
121
|
* to Arthur Rupp https://paypal.me/ArthurRupp
|
|
@@ -112,7 +131,14 @@ You can thank the authors by these links:
|
|
|
112
131
|
### **WORK IN PROGRESS**
|
|
113
132
|
-->
|
|
114
133
|
|
|
134
|
+
|
|
115
135
|
## Changelog
|
|
136
|
+
### 1.8.5 (2022-11-30)
|
|
137
|
+
* (arteck) fix for new code
|
|
138
|
+
|
|
139
|
+
### 1.8.3 (2022-11-30)
|
|
140
|
+
* (arteck) back to old source
|
|
141
|
+
|
|
116
142
|
### 1.8.1 (2022-11-28)
|
|
117
143
|
* (bluefox) Packages updated
|
|
118
144
|
* (bluefox) Added names of serial ports in configuration dialog
|
|
@@ -163,8 +189,8 @@ You can thank the authors by these links:
|
|
|
163
189
|
- when a pingable device is marked active (from being inactive) it will be pinged again.
|
|
164
190
|
- inactive devices are excluded from OTA updates.
|
|
165
191
|
* (asgothian) Group rework part 2:
|
|
166
|
-
- state
|
|
167
|
-
- state
|
|
192
|
+
- state device.groups will now be deleted with state Cleanup
|
|
193
|
+
- state info.groups is now obsolete and will be deleted at adapter start (after transferring data to
|
|
168
194
|
the new storage)
|
|
169
195
|
* (asgothian) Device name persistance.
|
|
170
196
|
- Changes to device names made within the zigbee adapter are stored in the file dev_names.json. This file
|
|
@@ -178,7 +204,7 @@ You can thank the authors by these links:
|
|
|
178
204
|
|
|
179
205
|
### 1.6.12 (2022-01)
|
|
180
206
|
* (asgothian) Groups were newly revised (read [here](https://github.com/ioBroker/ioBroker.zigbee/pull/1327) )
|
|
181
|
-
- object
|
|
207
|
+
- object device.groups is obsolet..the old one is no longer up to date
|
|
182
208
|
|
|
183
209
|
### 1.6.9 (2021-12)
|
|
184
210
|
* (simatec) fix admin Dark-Mode
|
package/admin/admin.js
CHANGED
|
@@ -597,21 +597,22 @@ function showDevices() {
|
|
|
597
597
|
deleteGroupConfirmation(id, getDevName(dev_block));
|
|
598
598
|
});
|
|
599
599
|
$('.card-reveal-buttons button[name=\'edit\']').click(function () {
|
|
600
|
-
const dev_block = $(this).parents('div.device')
|
|
601
|
-
|
|
602
|
-
|
|
600
|
+
const dev_block = $(this).parents('div.device');
|
|
601
|
+
const id = getDevId(dev_block);
|
|
602
|
+
const name = getDevName(dev_block);
|
|
603
603
|
editName(id, name);
|
|
604
604
|
});
|
|
605
605
|
$('.card-reveal-buttons button[name=\'editgrp\']').click(function () {
|
|
606
|
-
const dev_block = $(this).parents('div.device')
|
|
607
|
-
|
|
608
|
-
|
|
606
|
+
const dev_block = $(this).parents('div.device');
|
|
607
|
+
const id = dev_block.attr('id').replace(namespace + '.group_', '');
|
|
608
|
+
const name = getDevName(dev_block);
|
|
609
609
|
editGroupName(id, name, false);
|
|
610
610
|
});
|
|
611
611
|
$('button.btn-floating[name=\'join\']').click(function () {
|
|
612
612
|
const dev_block = $(this).parents('div.device');
|
|
613
|
-
if (!$('#pairing').hasClass('pulse'))
|
|
613
|
+
if (!$('#pairing').hasClass('pulse')) {
|
|
614
614
|
joinProcess(getDevId(dev_block));
|
|
615
|
+
}
|
|
615
616
|
showPairingProcess();
|
|
616
617
|
});
|
|
617
618
|
$('.card-reveal-buttons button[name=\'info\']').click(function () {
|
|
@@ -685,10 +686,8 @@ function checkFwUpdate() {
|
|
|
685
686
|
function letsPairing() {
|
|
686
687
|
messages = [];
|
|
687
688
|
sendTo(namespace, 'letsPairing', {}, function (msg) {
|
|
688
|
-
if (msg) {
|
|
689
|
-
|
|
690
|
-
showMessage(msg.error, _('Error'));
|
|
691
|
-
}
|
|
689
|
+
if (msg && msg.error) {
|
|
690
|
+
showMessage(msg.error, _('Error'));
|
|
692
691
|
}
|
|
693
692
|
});
|
|
694
693
|
}
|
|
@@ -696,10 +695,8 @@ function letsPairing() {
|
|
|
696
695
|
function touchlinkReset() {
|
|
697
696
|
messages = [];
|
|
698
697
|
sendTo(namespace, 'touchlinkReset', {}, function (msg) {
|
|
699
|
-
if (msg) {
|
|
700
|
-
|
|
701
|
-
showMessage(msg.error, _('Error'));
|
|
702
|
-
}
|
|
698
|
+
if (msg && msg.error) {
|
|
699
|
+
showMessage(msg.error, _('Error'));
|
|
703
700
|
}
|
|
704
701
|
});
|
|
705
702
|
}
|
|
@@ -707,10 +704,8 @@ function touchlinkReset() {
|
|
|
707
704
|
function joinProcess(devId) {
|
|
708
705
|
messages = [];
|
|
709
706
|
sendTo(namespace, 'letsPairing', {id: devId}, function (msg) {
|
|
710
|
-
if (msg) {
|
|
711
|
-
|
|
712
|
-
showMessage(msg.error, _('Error'));
|
|
713
|
-
}
|
|
707
|
+
if (msg && msg.error) {
|
|
708
|
+
showMessage(msg.error, _('Error'));
|
|
714
709
|
}
|
|
715
710
|
});
|
|
716
711
|
}
|
|
@@ -727,7 +722,6 @@ function getCoordinatorInfo() {
|
|
|
727
722
|
});
|
|
728
723
|
}
|
|
729
724
|
|
|
730
|
-
|
|
731
725
|
function getDevices() {
|
|
732
726
|
getCoordinatorInfo();
|
|
733
727
|
sendTo(namespace, 'getDevices', {}, function (msg) {
|
|
@@ -773,17 +767,25 @@ function getMap() {
|
|
|
773
767
|
// the function loadSettings has to exist ...
|
|
774
768
|
// eslint-disable-next-line no-unused-vars
|
|
775
769
|
function load(settings, onChange) {
|
|
776
|
-
|
|
777
|
-
|
|
770
|
+
settings.panID = settings.panID || 6754;
|
|
771
|
+
settings.extPanID = settings.extPanID || 'DDDDDDDDDDDDDDDD';
|
|
778
772
|
// fix for previous wrong value
|
|
779
|
-
if (settings.extPanID === 'DDDDDDDDDDDDDDD')
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
773
|
+
if (settings.extPanID === 'DDDDDDDDDDDDDDD') {
|
|
774
|
+
settings.extPanID = 'DDDDDDDDDDDDDDDD';
|
|
775
|
+
}
|
|
776
|
+
settings.precfgkey = settings.precfgkey || '01030507090B0D0F00020406080A0C0D';
|
|
777
|
+
if (settings.channel === undefined){
|
|
778
|
+
settings.channel = 11;
|
|
779
|
+
}
|
|
780
|
+
if (settings.disablePing === undefined) {
|
|
781
|
+
settings.disablePing = false;
|
|
782
|
+
}
|
|
783
783
|
|
|
784
784
|
// example: select elements with id=key and class=value and insert value
|
|
785
785
|
for (const key in settings) {
|
|
786
|
-
if (savedSettings.indexOf(key) === -1)
|
|
786
|
+
if (savedSettings.indexOf(key) === -1) {
|
|
787
|
+
continue;
|
|
788
|
+
}
|
|
787
789
|
// example: select elements with id=key and class=value and insert value
|
|
788
790
|
const value = $('#' + key + '.value');
|
|
789
791
|
if (value.attr('type') === 'checkbox') {
|
|
@@ -820,8 +822,9 @@ function load(settings, onChange) {
|
|
|
820
822
|
showPairingProcess();
|
|
821
823
|
});
|
|
822
824
|
$('#pairing').click(function () {
|
|
823
|
-
if (!$('#pairing').hasClass('pulse'))
|
|
825
|
+
if (!$('#pairing').hasClass('pulse')) {
|
|
824
826
|
letsPairing();
|
|
827
|
+
}
|
|
825
828
|
showPairingProcess();
|
|
826
829
|
});
|
|
827
830
|
|
|
@@ -98,10 +98,10 @@
|
|
|
98
98
|
"notImplementedText": "Sie können hier eigene Befehle an Ihre Geräte senden, die noch nicht als Objekte implementiert sind. Es kann auch verwendet werden, um undokumentierte Einstellungen Ihrer Geräte zu finden. Oder um die Auswirkungen von Einstellungen zu testen und zu entscheiden, ob es sich lohnt, sie als Objekt zu implementieren. Und so weiter...",
|
|
99
99
|
"to make it available for other user too": "um es auch für andere Benutzer verfügbar zu machen",
|
|
100
100
|
"Excludes": "ausschließen",
|
|
101
|
-
"ExcludeTextTranslation": "Sie können hier einige Geräte hinzufügen, die von unserer
|
|
101
|
+
"ExcludeTextTranslation": "Sie können hier einige Geräte hinzufügen, die von unserer Verarbeitung ausgeschlossen werden sollten. Sie verwenden dann nur exposes vom ZigBee-Herdsman-Converter. Nach dem Hinzufügen starten Sie bitte den Adapter neu.",
|
|
102
102
|
"Please contribute your discoveries": "Bitte geben Sie uns Ihre Vorschläge",
|
|
103
103
|
"zigbee-shepherd": "Sie können die zu sendenden Rohdaten hier bearbeiten. Verwenden Sie diese nicht, wenn Sie sich nicht sicher sind, was Sie tun! Verwenden Sie das JSON-Format (Attributnamen in doppelten Anführungszeichen!). Es können auch zusätzliche Eigenschaften hinzugefügt werden. Siehe Beispiele oben. (Format wie von zigbee-shepherd verwendet)",
|
|
104
|
-
"SettingsExclude": "
|
|
104
|
+
"SettingsExclude": "Den Start des Adapters mit inkonsistenter Konfiguration erzwingen(nicht empfohlen). Bitte aktualisieren Sie den Adapter auf kompatible Firmware und erstellen Sie Ihr Netzwerk so schnell wie möglich neu.",
|
|
105
105
|
"disable internal Backup": "Deaktiviere die interne Sicherung",
|
|
106
106
|
"Disable active availability check": "Aktive Verfügbarkeitsprüfung deaktivieren",
|
|
107
107
|
"Others": "andere Einstellungen"
|