iobroker.zigbee 2.0.4 → 3.0.0

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.
Files changed (48) hide show
  1. package/README.md +90 -57
  2. package/admin/admin.js +497 -120
  3. package/admin/img/philips_hue_lom001.png +0 -0
  4. package/admin/index_m.html +168 -124
  5. package/admin/tab_m.html +20 -11
  6. package/docs/de/img/Bild30.png +0 -0
  7. package/docs/de/img/Bild38.png +0 -0
  8. package/docs/de/img/Info.png +0 -0
  9. package/docs/de/img/Zigbee_config_de.jpg +0 -0
  10. package/docs/de/img/battery.png +0 -0
  11. package/docs/de/img/debug.png +0 -0
  12. package/docs/de/img/delete.png +0 -0
  13. package/docs/de/img/disconnected.png +0 -0
  14. package/docs/de/img/edit_grp.png +0 -0
  15. package/docs/de/img/edit_image.png +0 -0
  16. package/docs/de/img/grp_nok.png +0 -0
  17. package/docs/de/img/grp_ok.png +0 -0
  18. package/docs/de/img/on_off.png +0 -0
  19. package/docs/de/img/reconfigure.png +0 -0
  20. package/docs/de/readme.md +52 -43
  21. package/docs/en/img/Zigbee_config_en.png +0 -0
  22. package/docs/en/img/Zigbee_pairing_en.png +0 -0
  23. package/docs/en/readme.md +71 -66
  24. package/docs/tutorial/groups-1.png +0 -0
  25. package/docs/tutorial/groups-2.png +0 -0
  26. package/docs/tutorial/tab-dev-1.png +0 -0
  27. package/io-package.json +31 -65
  28. package/lib/DeviceDebug.js +5 -2
  29. package/lib/commands.js +182 -31
  30. package/lib/developer.js +0 -0
  31. package/lib/devices.js +2 -2
  32. package/lib/exposes.js +10 -27
  33. package/lib/groups.js +6 -8
  34. package/lib/localConfig.js +4 -5
  35. package/lib/ota.js +6 -6
  36. package/lib/seriallist.js +9 -2
  37. package/lib/statescontroller.js +397 -128
  38. package/lib/utils.js +41 -11
  39. package/lib/zbDeviceAvailability.js +2 -2
  40. package/lib/zbDeviceConfigure.js +99 -58
  41. package/lib/zigbeecontroller.js +152 -128
  42. package/main.js +251 -264
  43. package/package.json +10 -10
  44. package/docs/en/img/Bild23.png +0 -0
  45. package/docs/en/img/Bild25.png +0 -0
  46. package/docs/en/img/Bild26.png +0 -0
  47. package/docs/en/img/Bild4.png +0 -0
  48. package/docs/en/img/Bild9.png +0 -0
package/README.md CHANGED
@@ -9,18 +9,15 @@
9
9
  [![Translation status](https://weblate.iobroker.net/widgets/adapters/-/zigbee/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)
10
10
  [![Downloads](https://img.shields.io/npm/dm/iobroker.zigbee.svg)](https://www.npmjs.com/package/iobroker.zigbee)
11
11
 
12
- ## ioBroker adapter for Zigbee devices via TI cc26x2r/cc2538/cc26x2px and deCONZ ConBee/RaspBee.
13
- ### cc2531/cc2530 are obsolet
12
+ ## ioBroker adapter for Zigbee devices via Zigbee coordinator hardware.
14
13
 
15
- 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.
14
+ Using specialized Zigbee-coordinator hardware, the adapter creates and manages a Zigbee Network which can control and connect a large number of Zigbee Devices. The list of compatible devices inlcudes > 4000 devices from > 450 different vendors. The number of devices in the network depends on the available coordinator hardware. Common coordinator hardware are USB sticks with Texas Instruments CC26xx, Silicon Labs EZSP or ZIGate chipsetz. Some branded USB devices (Sonoff ZB-Dongle, Dresden Electronic Conbee) can also be used. There are also network-based hubs from various manufacturers.
16
15
 
17
-
18
- By working 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).
16
+ By working directly with the coordinator, the driver allows you to manage devices without additional application / gateways / bridge from device manufacturers (Xiaomi / TRADFRI / Hue / Tuya). More information about the Zigbee-network can be read [here (in English)](https://www.zigbee2mqtt.io/information/zigbee_network.html).
19
17
 
20
18
  ## Hardware
21
19
 
22
-
23
- 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 [smarthomescene.com ](https://smarthomescene.com/blog/best-zigbee-dongles-for-home-assistant-2023/) 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)
20
+ 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 [smarthomescene.com ](https://smarthomescene.com/blog/best-zigbee-dongles-for-home-assistant-2023/) 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)
24
21
 
25
22
 
26
23
  ### Texas Instruments SoC
@@ -35,7 +32,6 @@ Current firmware files for these devices can be found [on GitHub](https://github
35
32
  <span><img src="https://raw.githubusercontent.com/ioBroker/ioBroker.zigbee/master/docs/de/img/CC2538_CC2592_PA.PNG" width="100"></span>
36
33
  <span><img src="https://raw.githubusercontent.com/ioBroker/ioBroker.zigbee/master/docs/de/img/cc26x2r.PNG" width="100"></span>
37
34
 
38
- tutorial/zigbee.png
39
35
  ### Dresden Elektronik SoC
40
36
  <span><img src="https://raw.githubusercontent.com/ioBroker/ioBroker.zigbee/master/docs/en/img/deconz.png" width="180"></span>
41
37
 
@@ -62,62 +58,82 @@ Support for [Silicon Lab Zigbee](https://www.silabs.com/wireless/zigbee) based a
62
58
  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 volunteering 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.
63
59
 
64
60
 
65
- ## Work with adapter
61
+ ## Getting started
62
+
63
+ The adapter should **always** be installed from within the ioBroker Admin. Direct npm and GitHub installations are **not recommended**.
64
+
65
+ At first start, it is vital to set up the adapter settings. These include:
66
+ - the communication to the zigbee Coordinator (COM Port). This can be a device identifier or a network address for Network-based coordinators
67
+ - the required firmware-Type
68
+ - the network parameters PanID (a number between 0 and 65565), extended PanID (a 16 digit HEX number) and the zigbee Channel **important: Do not run the adapter without changing the values for PanID (6754) and Extended PanID (DDDDDDDDDDDDDDDD) to unique values for your Zigbee Installation.**
69
+
70
+
71
+ ![](docs/de/img/Zigbee_config_de.png)
72
+ Please refer to the [in depth documentation](docs/en/readme.md) ([german version](docs/de/readme.md), [russian version](docs/ru/readme.md)) for a detailed explanation on how to configure the adapter.
73
+
74
+ Once the adapter is up and running, the desired devices need to be integrated into the network. This requires for both the adapter and the device to be in pairing mode. Most new devices will be in pairing-mode when they are powered up for the first time, but some will require a special procedure for this. Please refer to the device manual for information on this.
75
+
76
+ The adapter is placed in pairing mode by pressing the pairing button:
77
+ ![](docs/de/img/Bild12.png)
78
+
79
+ A dialog showing a pairing countdown appears. When a new device is discovered, interviewed and paired with the network, messages will be shown in this dialog, and the device will show up in the grid of active devices. Any known device should show up with an image and the correct device name, as well as a number of changable settings. Any unknown device will show up with a device name and a ? as icon, while devices which failed the pairing will show up as 'unknown' with the same ? icon. These should be removed from the network to be paired again. Please refer to the documentation linked above for more details.
66
80
 
67
- ![](docs/tutorial/zigbee.png)
81
+ ## Advanced options
68
82
 
69
- 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.
83
+ ### Groups
70
84
 
71
- open the settings and change port
72
- ![](docs/tutorial/settings.png)
85
+ The adapter allows for the creation of groups via the 'add group' button. Once a group has been formed, devices can be added to and removed from the group from the device card. Removal is also possible from the group card.
86
+ Groups have the advantage that a single command is sent to control all group members. This is especially helpful when changing the groups brightness and/or color settings.
87
+ Note that not all devices may be added to groups - the device itself needs to support this feature.
73
88
 
89
+ Group configuration is available from the device grid.
74
90
 
75
- For Windows, this will be the COM port number.
91
+ ### Bindings
76
92
 
77
- 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
93
+ Bindings can be used to link a remote control directly to a device, like it is e.g. done for the ikea devices. This binding has the advantage that bound devices will continue to work together even if the Zigbee Coordinator is unavailable.
94
+ Note that not all devices may be part of a binding - the devices themselves need to support this feature.
78
95
 
79
- To connect devices, you need to switch the Zigbee coordinator to pairing mode by pressing the green button. The countdown will begin (60 seconds) until the device connectivity is available.
80
- To connect Zigbee devices in most cases, just press the pairing button on the device itself. But there are features for some devices. More information about pairing with devices can be found [here (in English)](https://www.zigbee2mqtt.io/getting_started/pairing_devices.html)
96
+ The binding configuration is only available from the zigbee tab
81
97
 
82
- After successful pairing, the device appears in the configuration panel. If the device appears in the configuration panel but has the type "undefined", then this is an unknown device and cannot be worked with it. If the device is in the list of available devices, but added as "undefined", then try to remove the device and add it again.
98
+ ### Network Map
83
99
 
84
- The devices connected to the Zigbee-network and inform the coordinator of their status and events (button presses, motion detection, temperature change). This information is reflected in the ioBroker object-states. Some ioBroker states have feedback and send commands to the zigbee-device when the value changes (switching the state of the outlet or lamp, changing the scene or the brightness of the lamp).
100
+ The adapter has the ability to generate a map of the mesh network. This usually takes a few minutes and provides a momentary glimpse into how the devices are meshed with each other.
85
101
 
86
- ### Device Groups
87
- You may create groups of devices.
102
+ The network map is only available the zigbee tab.
88
103
 
89
- ![](docs/tutorial/groups-1.png)
104
+ ### Debug information
90
105
 
91
- It is a Zigbee feature, intended for example to switch bulbs synchronized. Assign groups via device tabs edit button. A group will show as own "device" in Objects.
106
+ The Adapter offers to collect debug information for specific devices in order to identify problems in device operation and integration. This needs to be enabled on the desired devices from the device grid.
92
107
 
93
- ![](docs/tutorial/groups-2.png)
108
+ The debug information is only available from the zigbee tab.
94
109
 
95
- Note: Not all devices support groups (not supported by end devices like sensors).
110
+ ### Local overrides
96
111
 
112
+ Device integration can be modified on a *per Model* basis, allowing the user to customise the states associated with the device. Note that before version 2.1.0, this is limited to choosing between the default *expose based* integration and the previous *legacy* integration. More options for customisation are under development.
97
113
 
98
- ### Binding
114
+ The local overrides are only available from the instance configuration
99
115
 
100
- https://www.zigbee2mqtt.io/information/binding
116
+ ### Developer Mode
117
+
118
+ The developer mode offers the ability to communicate with any paired device solely based on the details of the Zigbee communication rules. Use of this requires an insight into Zigbee Clusters, Attributes and messaging structure. It can be used to control devices which are not currently supported. An in depth desctiption of the developer Tab is available in the documentation.
119
+
120
+ The developer tab is only available from the instance configuration
101
121
 
102
- ### Developer Tab
103
122
 
104
- This is a tool for advanced users to test currently unsupported devices or enhance this adapter's functionality. More instructions can be found on the tab.
105
- ![](docs/tutorial/tab-dev-1.png)
106
123
 
107
124
  ## Additional info
108
125
 
109
- 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.
126
+ There is a [friendly project](https://github.com/koenkk/zigbee2mqtt) with similar functionality which is based on the same technology. It uses the same base libraries for hardware communication and device integration. Any device listed as compatible in this project is likely to be compatible with the ioBroker.zigbee Adapter. Note that there is a delay between device integration into zigbee2mqtt.io and the Zigbee-Adapter, as compatibility with the hardware libraries requires verification before the adapter can move to the latest version.
110
127
 
111
128
  There are knowledge bases that can be useful for working with Zigbee-devices and equipment:
112
- * in English https://www.zigbee2mqtt.io/
129
+ * in English https://www.zigbee2mqtt.io/ or https://zigbee.blakadder.com
113
130
  * in Russian https://myzigbee.ru/
114
131
 
115
132
  ## Supported devices
116
133
 
117
- [Works with devices from this list](https://github.com/ioBroker/ioBroker.zigbee/wiki/Supported-devices)
134
+ Pleae refer to [this list](https://www.zigbee2mqtt.io/supported-devices/) to check compatibility. Once a device is listed as compatible there, it is either already compatible with the Zigbee Adapter or can be made compatible using an external converter.
118
135
 
119
-
120
- ## More Information
136
+ ## In Depth Documentation
121
137
 
122
138
  [in Deutsch](https://github.com/ioBroker/ioBroker.zigbee/blob/master/docs/de/readme.md)
123
139
 
@@ -136,33 +152,50 @@ You can thank the authors by these links:
136
152
 
137
153
  -----------------------------------------------------------------------------------------------------
138
154
  ## Changelog
155
+ ### 3.0.0 (2025-04-08)
156
+ * (asgothian) Breaking change: Start of zigbee subsystem requires configuration entry !!!
157
+ * (asgothian) Hardware configuration panel
158
+ * (asgothian) Update for external converter - detect /dist/ subfolder
159
+ * (asgothian) Update device image: use of icons defined in external converter (beta)
160
+ *
161
+
162
+ ### 2.0.5 (2025-03-25)
163
+ * (asgothian) ZHC 23.6.0
164
+ * (asgothian) ZH 3.3.x
165
+ * (asgothian) removed extra logging
166
+ * (asgothian) fixed memory issue.
167
+ * (asgothian) Configure on Message - 5 attempts.
168
+ * (arteck) update transmitPower
169
+ * (asgothian) fix crash in ZigbeeController.ByteArrayToString
170
+ * (AlexHaxe) device designation for devices without mapped model (allows use in groups and bindings)
171
+ *
172
+
139
173
  ### 2.0.4 (2025-03-09)
140
- * back to 2.0.2
174
+ * (arteck) back to 2.0.2
141
175
 
142
176
  ### 2.0.3 (2025-03-07)
143
- * fix configured info
144
- * fix battery voltage (V -> mV)
145
- * enable debug interface v1.0
146
- * Push Zigbee-Herdsman to 3.5.7
147
- * Push Zigbee-Herdsman-Converters to 23.1.1
148
- * fix configure on message
149
- * remove extra warning messages
150
- * fix Adapter-Checker notes
151
- * improve base64 image detection
152
- * removed unused adaptert objects (info.groups, excludes) from adapter config
153
- *
177
+ * (asgothian) fix configured info
178
+ * (asgothian) fix battery voltage (V -> mV)
179
+ * (asgothian) enable debug interface v1.0
180
+ * (asgothian) Push Zigbee-Herdsman to 2.5.7
181
+ * (asgothian) Push Zigbee-Herdsman-Converters to 23.1.1
182
+ * (asgothian) fix configure on message
183
+ * (asgothian) remove extra warning messages
184
+ * (asgothian) fix Adapter-Checker notes
185
+ * (asgothian) improve base64 image detection
186
+ * (asgothian) removed unused adaptert objects (info.groups, excludes) from adapter config
154
187
 
155
188
  ### 2.0.2 (2025-03-02)
156
- * fix expose generation with expose function requiring a device. (Issue #1842)
157
- * fix failure to configure for devices needing multiple configurations (Issue #2375)
158
- * fix hold/release and press/release action handling (Issue #2387)
159
- * fix lib/legacy requirement for external converters (Issue #2376)
160
- * improved external converter handling
161
- * fix OTA bug
162
- * improved message handling for devices which report values outside their defined ranges
163
- * preparation for ZHC 22.x (model definition loaded on demand
164
- * fix legacy definition for devices
165
- * added action state for remotes.
189
+ * (asgothian) expose generation with expose function requiring a device. (Issue #1842)
190
+ * (asgothian) fix failure to configure for devices needing multiple configurations (Issue #2375)
191
+ * (asgothian) fix hold/release and press/release action handling (Issue #2387)
192
+ * (asgothian) fix lib/legacy requirement for external converters (Issue #2376)
193
+ * (asgothian) improved external converter handling
194
+ * (asgothian) fix OTA bug
195
+ * (asgothian) improved message handling for devices which report values outside their defined ranges
196
+ * (asgothian) preparation for ZHC 22.x (model definition loaded on demand
197
+ * (asgothian) fix legacy definition for devices
198
+ * (asgothian) added action state for remotes.
166
199
  *
167
200
 
168
201
  ### 2.0.1 (2025-02-25)