iobroker.zigbee 1.5.6 → 1.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/.devcontainer/devcontainer.json +35 -35
  2. package/.devcontainer/docker-compose.yml +51 -51
  3. package/.devcontainer/iobroker/Dockerfile +1 -1
  4. package/.devcontainer/nginx/nginx.conf +32 -32
  5. package/.devcontainer/parcel/Dockerfile +8 -8
  6. package/.devcontainer/parcel/run.sh +6 -6
  7. package/.eslintignore +1 -1
  8. package/.eslintrc.json +36 -36
  9. package/.github/FUNDING.yml +3 -3
  10. package/.github/stale.yml +13 -13
  11. package/.github/workflows/test-and-release.yml +151 -151
  12. package/.travis/wiki.sh +27 -27
  13. package/LICENSE +21 -21
  14. package/README.md +385 -353
  15. package/admin/adapter-settings.js +244 -208
  16. package/admin/admin.js +2704 -2714
  17. package/admin/img/R7060.png +0 -0
  18. package/admin/img/WHD02.png +0 -0
  19. package/admin/img/ikea_E1812.png +0 -0
  20. package/admin/img/philips_hue_lom001.png +0 -0
  21. package/admin/img/tuya_rb280.png +0 -0
  22. package/admin/index.html +159 -159
  23. package/admin/index_m.html +1055 -965
  24. package/admin/moment.min.js +1 -1
  25. package/admin/shuffle.min.js +2 -2
  26. package/admin/tab_m.html +1025 -934
  27. package/admin/vis-network.min.js +26 -26
  28. package/admin/words.js +106 -106
  29. package/docs/de/readme.md +27 -27
  30. package/docs/en/readme.md +30 -30
  31. package/docs/flashing_via_arduino_(en).md +110 -110
  32. package/docs/ru/readme.md +28 -28
  33. package/docs/tutorial/groups-1.png +0 -0
  34. package/docs/tutorial/groups-2.png +0 -0
  35. package/docs/tutorial/tab-dev-1.png +0 -0
  36. package/docs/tutorial/zigbee.png +0 -0
  37. package/io-package.json +317 -290
  38. package/lib/backup.js +132 -132
  39. package/lib/binding.js +325 -325
  40. package/lib/colors.js +460 -460
  41. package/lib/commands.js +435 -434
  42. package/lib/developer.js +148 -144
  43. package/lib/devices.js +3119 -3109
  44. package/lib/exclude.js +168 -168
  45. package/lib/exposes.js +204 -51
  46. package/lib/groups.js +316 -316
  47. package/lib/json.js +60 -60
  48. package/lib/networkmap.js +56 -56
  49. package/lib/ota.js +153 -153
  50. package/lib/rgb.js +225 -225
  51. package/lib/seriallist.js +37 -37
  52. package/lib/states.js +6381 -6322
  53. package/lib/statescontroller.js +502 -495
  54. package/lib/tools.js +54 -54
  55. package/lib/utils.js +151 -132
  56. package/lib/zbBaseExtension.js +31 -27
  57. package/lib/zbDelayedAction.js +151 -146
  58. package/lib/zbDeviceAvailability.js +306 -304
  59. package/lib/zbDeviceConfigure.js +148 -143
  60. package/lib/zbDeviceEvent.js +43 -43
  61. package/lib/zigbeecontroller.js +856 -822
  62. package/main.js +113 -39
  63. package/package.json +74 -73
  64. package/support/docgen.js +93 -93
package/README.md CHANGED
@@ -1,353 +1,385 @@
1
- ![Logo](admin/zigbee.png)
2
- # ioBroker.zigbee
3
-
4
- ![Number of Installations](http://iobroker.live/badges/zigbee-installed.svg) ![Number of Installations](http://iobroker.live/badges/zigbee-stable.svg) [![NPM version](http://img.shields.io/npm/v/iobroker.zigbee.svg)](https://www.npmjs.com/package/iobroker.zigbee)
5
- [![Downloads](https://img.shields.io/npm/dm/iobroker.zigbee.svg)](https://www.npmjs.com/package/iobroker.zigbee)
6
- [![Tests](https://travis-ci.org/ioBroker/ioBroker.zigbee.svg?branch=master)](https://travis-ci.org/ioBroker/ioBroker.zigbee)
7
-
8
- [![NPM](https://nodei.co/npm/iobroker.zigbee.png?downloads=true)](https://nodei.co/npm/iobroker.zigbee/)
9
-
10
- ## ioBroker adapter for Zigbee devices via TI cc2531/cc2530/cc26x2r/cc2538 and deCONZ ConBee/RaspBee.
11
-
12
- With the Zigbee-coordinator based on Texas Instruments SoC cc253x (and others models) or deCONZ ConBee/RaspBee modules, 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).
13
-
14
- ## Hardware
15
-
16
- ### Texas Instruments SoC
17
- ..
18
- For work, you need one of the following devices, flashed with a special ZNP firmware: [cc2531, cc2530, cc26x2r, cc2538](https://github.com/Koenkk/Z-Stack-firmware)
19
-
20
- <span><img src="https://ae01.alicdn.com/kf/HTB1Httue3vD8KJjSsplq6yIEFXaJ/Wireless-Zigbee-CC2531-Sniffer-Bare-Board-Packet-Protocol-Analyzer-Module-USB-Interface-Dongle-Capture-Packet.jpg_640x640.jpg" width="100"></span>
21
- <span><img src="http://img.dxcdn.com/productimages/sku_429478_2.jpg" width="100"></span>
22
- <span><img src="http://img.dxcdn.com/productimages/sku_429601_2.jpg" width="100"></span>
23
- <span><img src="https://ae01.alicdn.com/kf/HTB1zAA5QVXXXXahapXXq6xXFXXXu/RF-TO-USB-CC2530-CC2591-RF-switch-USB-transparent-serial-data-transmission-equipment.jpg_640x640.jpg" width="100"></span>
24
- <span><img src="docs/de/img/CC2538_CC2592_PA.PNG" width="100"></span>
25
- <span><img src="docs/de/img/cc26x2r.PNG" width="100"></span>
26
-
27
- The necessary equipment for the firmware and the device preparation process are described [here (in English)](https://www.zigbee2mqtt.io/getting_started/what_do_i_need.html) 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)
28
-
29
- ### Dresden Elektronik SoC
30
-
31
- (experimental support)
32
-
33
- <span><img src="docs/en/img/deconz.png"></span>
34
-
35
- ConBee I
36
- ConBee II
37
- RaspBee
38
-
39
-
40
- ## Work with adapter
41
-
42
- ![](docs/tutorial/zigbee.png)
43
-
44
- 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.
45
-
46
- open the settings and change port
47
- ![](docs/tutorial/settings.png)
48
-
49
-
50
- For Windows this will be the COM port number.
51
-
52
- 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
53
-
54
- 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.
55
- 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)
56
-
57
- 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 can not be work 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.
58
-
59
- 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).
60
-
61
- ### Device Groups
62
- You may create groups of devices.
63
-
64
- ![](docs/tutorial/groups-1.png)
65
-
66
- 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.
67
-
68
- ![](docs/tutorial/groups-2.png)
69
-
70
- Note: Not all devices support groups (not supported by end devices like sensors).
71
-
72
-
73
- ### Binding
74
-
75
- https://www.zigbee2mqtt.io/information/binding
76
-
77
- ### Developer Tab
78
-
79
- This is a tool for advanced users to test currently unsupported devices or enhance this adapters functionality. More instructions can be found on tab.
80
- ![](docs/tutorial/tab-dev-1.png)
81
-
82
- ## Additional info
83
-
84
- 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.
85
-
86
- There are knowledge bases that can be useful for working with Zigbee-devices and equipment:
87
- * in English https://www.zigbee2mqtt.io/
88
- * in Russian https://myzigbee.ru/
89
-
90
- ## Supported devices
91
-
92
- Works with devices from this list https://github.com/ioBroker/ioBroker.zigbee/wiki/Supported-devices
93
-
94
- ## Donate
95
-
96
- You can thank the authors by these links:
97
- * to Kirov Ilya https://www.paypal.me/goofyk
98
- * to Arthur Rupp https://paypal.me/pools/c/8gWlKqAfIF
99
-
100
- <!--
101
- Placeholder for the next version (at the beginning of the line):
102
- ### __WORK IN PROGRESS__
103
- -->
104
-
105
- ## Changelog
106
-
107
- ### 1.5.5 (2021-05-05)
108
- * Fixes for new zigbee-herdsman-converters
109
- * UI fixes
110
-
111
- ### 1.5.3 (2021-04-30)
112
- * (arteck) Fix for js-controller 3.3.*
113
-
114
- ### 1.5.2 (2021-04-29)
115
- * (asgothian) Groups on dashboard
116
-
117
-
118
- ### 1.5.1 (2021-04-14)
119
- * (kirovilya) Dashboard
120
- * (asgothian) Groups (reworked)
121
- * [Experimental support EZSP protocol for EFR32 chips](https://github.com/Koenkk/zigbee-herdsman/issues/319) (zigbee-herdsman)
122
-
123
-
124
- ### 1.4.4 (2021-02-14)
125
- * (kirovilya) External converters https://www.zigbee2mqtt.io/information/configuration.html#external-converters-configuration
126
- * (asgothian) Enhancement ping process
127
- * (asgothian) Devive query state-button
128
- * (asgothian) State Cleanup button
129
- * (arteck) Setting to use exposes instead of internal device description
130
-
131
-
132
- ### 1.4.1 (2020-12)
133
- * (o0shojo0o) added a kelvin posibility into colortemp
134
- * (asgothian) Hue_calibration for exposed devices (Use requires PR on zigbee-herdsman-converters, PR is being worked on)
135
- * (asgothian) fix Tuya Thermostat: restore lost property "preset"
136
- * (asgothian) Change for Device Availability: Stagger initial ping by 200 ms to prevent network congestion due to a large number of ping requests
137
- * (asgothian) Change for Device Availability: Ping request triggered on reconnect. Before the herdsman Ping function is used, the adapter attempts to read the "state" dp. If this is successful, no ping is sent and the state is set
138
- * (asgothian) Change for Device Availability: Set link Quality to 0 when a device is not connected, 10 when it is reconnecting.
139
- * (asgothian) fix for message "illegal properties x,y" - remove color and color_temp from readable states on device available again (Issue #607)
140
- * (asgothian) RGB Color can now be entered as "named" color. Implemented names are taken from the list of extended web colors on wikipedia (https://en.wikipedia.org/wiki/Web_colors)
141
- * (asgothian) change in how RGB color is parsed. Incomplete colors will now be parsed successfully. #FFF will result in R 0, G 15, B 255
142
- * (asgothian) change in OTA: Message that a device does not respond for OTA query downgraded to "info" from "error"
143
- * (asgothian) new coordinator card
144
-
145
-
146
- ### 1.4.0 (2020-12)
147
- * Many new devices available
148
-
149
- Starting from version 1.4.0, new devices in iobroker.zigbee will be added automatically, based on the *exposes* described in zigbee-herdsman-converters.
150
- The *exposes* section describes the device's capabilities, events and control commands. In iobroker.zigbee these descriptions are converted to iobroker states.
151
- This means that the new device is described correctly enough in zigbee-herdsman-converters to start working with iobroker.zigbee (do not need to add it to our /lib/devices files.js and /lib/states.js).
152
-
153
- The only thing that is not described (yet, it may change in the future) in zigbee-herdsman-converters is the device image. This is why the device icon on network map uses external links to the resource https://www.zigbee2mqtt.io/images/devices/*.
154
- If you want to use local images, then you need to put the image file in /admin/img and briefly describe the device in the /lib/devices.js file without the *states*:
155
- ```
156
- {
157
- models: [‘01MINIZB’],
158
- icon: 'img/ITEAD01ZBMINI. png',
159
- }
160
- ```
161
- in this case, the *states* attribute will be formed based on the *exposes* description and the image will be local.
162
-
163
- ### 1.3.1 (2020-10-30)
164
- * [Experimental Zigate support](https://github.com/Koenkk/zigbee-herdsman/issues/242) (zigbee-herdsman)
165
- * New devices by:
166
- asgothian, arteck, kirovilya, PaulchenPlump
167
-
168
- ### 1.3.0 (2020-10-07)
169
- * More stable (zigbee-herdsman)
170
- * Backup prior database and nv-data (for z-stack 3) before start adapter
171
- * Allow to select bind cluster
172
- * Admin Tab support (experimental)
173
- * (UncleSamSwiss, DutchmanNL) Translation
174
- * New devices by:
175
- arteck, kirovilya, Shade, krumbholz, fre, Alex18081, ae, asgothian,
176
- Strunzdesign, kairauer, VLGorskij, Hesse-Bub, PaulchenPlump, blackrozes
177
-
178
- ### 1.2.1 (2020-08-16)
179
- * Fixes after changing device identify method
180
- * (Garfonso) Allow to unbind from coordinator
181
-
182
- ### 1.2.0 (2020-08-09)
183
- * Serialport 9.0.0. (zigbee-herdsman)
184
- * Drop support Node < 10 (zigbee-herdsman)
185
- * Device now identify (for zigbee-herdsman-converters) by model not zigbeeModel
186
-
187
- Improvements and fixes:
188
- * (Strunzdesign) Fixed the mapping between bulb levels and adapter levels
189
- * (kirovilya) Fix ota for unavailable devices
190
- * (kirovilya) Lazy states - created only when an event arrives
191
- * (kirovilya) States generator - states are created depending on the device and its endpoints
192
- * (Shade) Fixed WXKG11LM clicks
193
- * (allofmex) Improved DeveloperTab logs
194
- * (allofmex) Add humidity and temperature calibration state to Tuya RH3052
195
- * (kirovilya) Fixed a typo due to which extPanID was not set
196
- * (allofmex) Retry reconnect gateway all the time for tcp connected gateway
197
- * (kirovilya) Allow to collect zigbee-herdsman logs to iobroker logs
198
- * (kirovilya) Additional states for QBKG12LM
199
-
200
- New devices:
201
- * (kirovilya) BlitzWolf BW-IS3, Paulmann 500.67, Paulmann 798.09
202
- * (kirovilya) DiY Geiger counter https://modkam.ru/?p=1591
203
- * (kirovilya) DiY 8 Relays + 8 switches https://modkam.ru/?p=1638
204
- * (kirovilya) DiY Freepad https://github.com/diyruz/freepad
205
- * (kirovilya) Neo Zigbee Siren Alarm https://szneo.com/en/products/show.php?id=241
206
- * (Shade) RB 278 T
207
- * (arteck) TS0601_thermostat
208
- * (arteck) TS0121
209
- * (arteck) GL-D-004Z
210
- * (Shade) WXKG07LM
211
- * (drohne200) 1746430P7
212
- * (sebastian) 4058075816459
213
- * (itProfi) SGMHM-I1
214
- * (arteck) owvfni3
215
- * (arteck) TS0001, TS0111
216
- * (Daniel Dreier) Paulmann 500.45
217
- * (arteck) ZK-EU-2U
218
- * (Newan) Busch-Jaeger 6735/6736/6737
219
- * (andrico21) ZM-L03E-Z
220
- * (arteck) 915005106701, 9290018187B
221
- * (frankjoke) HGZB-20-UK, GL-W-001Z
222
- * (arteck) 4034031P7, 3435011P7
223
- * (arteck) TS0041
224
- * (agross) 5062231P7, 5062431P7
225
- * (kirovilya) TI0001-switch, TI0001-socket
226
- * (arteck) RB 178 T
227
- * (arteck) HGZB-07A, AV2010/22, AV2010/22A, TS0041, TS0043
228
- * (nbars) E1744
229
- * (Florian Look) GS361A-H04
230
- * (arteck) ICZB-IW11SW
231
- * (kirovilya) HS2WD-E
232
- * (Sacred-Shadow) FL 130 C
233
- * (arteck) HS3SA, 9290022169, 4096730U7, AC10787, SP 220, SP 222, SP 224, 07004D, BW-IS2, InstaRemote
234
- * (kirovilya) MCLH-08, MCLH-05
235
- * (Sacred-Shadow) 1746130P7
236
- * (mar565) GUNNARP panel round
237
- * (Erdnuss3003) 4090531P7
238
-
239
-
240
- ### 1.1.1 (2020-04-17)
241
- * (kirovilya) Critical. Fixed error starting adapter if cc-chip was only flashed
242
- * (kirovilya) Nue/3A FNB56-ZSW02LX2.0
243
- * (Strunzdesign) Added missing raw button events for Philips Hue Smart Button ROM001
244
- * (Sacred-Shadow) Fix Color for Outdoor Lantern W RGBW OSRAM
245
-
246
- ### 1.1.0 (2020-04-12)
247
- new Zigbee-herdsman features:
248
- * ConBee/RaspBee (experimental support) https://github.com/Koenkk/zigbee-herdsman/issues/72
249
- * OTA update for some devices (IKEA, OSRAM and other) https://github.com/Koenkk/zigbee2mqtt/issues/2921
250
- * Touchlink reset and join https://github.com/Koenkk/zigbee2mqtt/issues/2396
251
- * Green Power devices support https://github.com/Koenkk/zigbee2mqtt/issues/3322
252
- * (peterfido) iCasa KPD14S und KPD18S hinzu
253
- * (kirovilya) Moes Zigbee Thermostatic Radiator
254
- * (kirovilya) LifeControl power plug MCLH-03, bulb MCLH-02, water leak MCLH-07, door sensor MCLH-04
255
- * (kirovilya) Philips LCT002, LCT011, LTW015, LWG004
256
- * (kirovilya) Gledopto GL-C-007 with with channel
257
- * (MultivitaminJuice) Iluminize 511.040
258
- * (Sacred-Shadow) Bitron 902010/24
259
- * (kirovilya) Color indication of LQI and Battery icon
260
- * (kirovilya) Device info modal dialog
261
- * (arteck) Philips LCT026
262
- * (obakuhl) Improvements Osram switch mini
263
- * (arteck) Nue / 3A FB56+ZSW1GKJ2.5, LXN-1S27LX1.0
264
- * (agross) Philips Signe Floor and Table
265
- * (arteck) TRADFRI bulb E14 WS 470lm, OSRAM PAR16 TW Z3
266
- * (kirovilya) Smart remote controller (4 buttons)
267
- * (allofmex) OTA updates
268
- * (kirovilya) Aqara opple change mode keys (for binding)
269
- * (palsch) Heiman HS2WD-E siren
270
-
271
- ### 1.0.4 (2020-03-14)
272
- * (kirovilya) Philips Hue Adore Bathroom Mirror Light
273
- * (kirovilya) Oujiabao Gas and carbon monoxide alarm
274
- * (kirovilya) Tuya SOS button
275
- * (Erdnuss3003) Schwaiger ZBT-DIMLight-GLS0800
276
- * (arteck) Smart Home Pty FB56-ZCW11HG1.4, LXT56-LS27LX1.7
277
- * (arteck) Xiaomi plug lumi.plug.mmeu01
278
- * (arteck) Innr RS 228 T, RS 230 C
279
- * (arteck) Gledopto GL-MC-001, GL-D-003ZS
280
- * (allmyjoes) Bitron AV2010/21A
281
- * (arteck) Osram Panel TW 595 UGR22
282
- * (kirovilya) IKEA SURTE door WS 38x64
283
- * (andigandi) Philips Hue LCG002, Hue LTG002
284
- * (arteck) iCasa ICZB-FC
285
- * (arteck) Osram A60 DIM Z3
286
- * (arteck) Paulmann 371000001
287
- * (DaCHRIS) Osram PAR16 DIM Z3
288
- * (DaCHRIS) Philips LWG001
289
- * (DaCHRIS) Illuminize 511.202
290
- * (SchumyHao) TERNCY-SD01 knob dimmer
291
- * (SchumyHao) Xiaomi lumi.lock.aq1
292
- * (kirovilya) New eWeLink devices: button, TH sensor, contact sensor, motion sensor
293
- * (kirovilya) Allow pairing to routers (again)
294
- * (Erdnuss3003) Philips Hue LCT021
295
- * (root) Trust ZWLD-100 water leak sensor
296
- * (smartpran) Bitron AV2010/32
297
-
298
- ### 1.0.3 (2020-02-09)
299
- * (Tw1nh34d) Hornbach FLAIR LED
300
- * (asgothian) Hue smart button, Heiman smoke sensor
301
- * (kirovilya) Philips LTC014, LTC015
302
- * (kirovilya) Power states for QBKG11LM
303
- * (Garfonso) Change role for occupancy state to 'sensor.motion'
304
- * (kirovilya) Change illuminance state to illuminance_lux (for lux value)
305
- * (arteck) Philips LCF002
306
- * (arteck) TRADFRI open/close remote
307
- * (kirovilya) Tuya sensor TS0201
308
-
309
- ### 1.0.2 (2020-01-29)
310
- * (kirovilya) All button events for Aqara Opple switch
311
- * (ma-john) OSRAM PAR16 RGBW Z3
312
- * (arteck) Phillips LWA004
313
- * (MiniMe6666) Heiman SmokeSendor-N-3.0
314
- * (kirovilya) Force remove device
315
- * (kirovilya) Fix some networkmap bugs
316
- * (kirovilya) Extended info button
317
- * (kirovilya) Long press for WXKG01LM
318
-
319
- ### 1.0.1 (2020-01-23)
320
- * fix for old z-stack firmware
321
-
322
- ### 1.0.0 (2020-01-22)
323
- * Powered by new [zigbee-herdsman](https://github.com/Koenkk/zigbee-herdsman) library and new [converters database](https://github.com/Koenkk/zigbee-herdsman-converters)
324
- * Drop support NodeJS 6
325
- * Serialport 8.0.5 (in zigbee-herdsman)
326
- * More new devices
327
- * Some design update
328
- * Binding
329
-
330
-
331
-
332
- ## License
333
- The MIT License (MIT)
334
-
335
- Copyright (c) 2018-2020 Kirov Ilya <kirovilya@gmail.com>
336
-
337
- Permission is hereby granted, free of charge, to any person obtaining a copy
338
- of this software and associated documentation files (the "Software"), to deal
339
- in the Software without restriction, including without limitation the rights
340
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
341
- copies of the Software, and to permit persons to whom the Software is
342
- furnished to do so, subject to the following conditions:
343
-
344
- The above copyright notice and this permission notice shall be included in
345
- all copies or substantial portions of the Software.
346
-
347
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
348
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
349
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
350
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
351
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
352
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
353
- THE SOFTWARE.
1
+ ![Logo](admin/zigbee.png)
2
+ # ioBroker.zigbee
3
+
4
+ ![Number of Installations](http://iobroker.live/badges/zigbee-installed.svg)
5
+ ![Number of Installations](http://iobroker.live/badges/zigbee-stable.svg)
6
+ [![NPM version](http://img.shields.io/npm/v/iobroker.zigbee.svg)](https://www.npmjs.com/package/iobroker.zigbee)
7
+
8
+ ![Test and Release](https://github.com/ioBroker/iobroker.zigbee/workflows/Test%20and%20Release/badge.svg)
9
+ [![Translation status](https://weblate.iobroker.net/widgets/adapters/-/zigbee/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)
10
+ [![Downloads](https://img.shields.io/npm/dm/iobroker.zigbee.svg)](https://www.npmjs.com/package/iobroker.zigbee)
11
+
12
+ ## ioBroker adapter for Zigbee devices via TI cc2531/cc2530/cc26x2r/cc2538 and deCONZ ConBee/RaspBee.
13
+
14
+ With the Zigbee-coordinator based on Texas Instruments SoC cc253x (and others models) or deCONZ ConBee/RaspBee modules, 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).
15
+
16
+ ## Hardware
17
+
18
+ ### Texas Instruments SoC
19
+ ..
20
+ For work, you need one of the following Adapters [all are listed here](https://www.zigbee2mqtt.io/information/supported_adapters.html) , flashed with a special ZNP firmware: [cc2531, cc2530, cc26x2r, cc2538](https://github.com/Koenkk/Z-Stack-firmware)
21
+
22
+ <span><img src="https://ae01.alicdn.com/kf/HTB1Httue3vD8KJjSsplq6yIEFXaJ/Wireless-Zigbee-CC2531-Sniffer-Bare-Board-Packet-Protocol-Analyzer-Module-USB-Interface-Dongle-Capture-Packet.jpg_640x640.jpg" width="100"></span>
23
+ <span><img src="http://img.dxcdn.com/productimages/sku_429478_2.jpg" width="100"></span>
24
+ <span><img src="http://img.dxcdn.com/productimages/sku_429601_2.jpg" width="100"></span>
25
+ <span><img src="https://ae01.alicdn.com/kf/HTB1zAA5QVXXXXahapXXq6xXFXXXu/RF-TO-USB-CC2530-CC2591-RF-switch-USB-transparent-serial-data-transmission-equipment.jpg_640x640.jpg" width="100"></span>
26
+ <span><img src="docs/de/img/CC2538_CC2592_PA.PNG" width="100"></span>
27
+ <span><img src="docs/de/img/cc26x2r.PNG" width="100"></span>
28
+
29
+ The necessary equipment for the firmware and the device preparation process are described [here (in English)](https://www.zigbee2mqtt.io/getting_started/what_do_i_need.html) 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)
30
+
31
+ ### Dresden Elektronik SoC
32
+
33
+ (experimental support)
34
+
35
+ <span><img src="docs/en/img/deconz.png"></span>
36
+
37
+ ConBee I
38
+ ConBee II
39
+ RaspBee
40
+
41
+
42
+ ## Work with adapter
43
+
44
+ ![](docs/tutorial/zigbee.png)
45
+
46
+ 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.
47
+
48
+ open the settings and change port
49
+ ![](docs/tutorial/settings.png)
50
+
51
+
52
+ For Windows this will be the COM port number.
53
+
54
+ 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
55
+
56
+ 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.
57
+ 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)
58
+
59
+ 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 can not be work 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.
60
+
61
+ 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).
62
+
63
+ ### Device Groups
64
+ You may create groups of devices.
65
+
66
+ ![](docs/tutorial/groups-1.png)
67
+
68
+ 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.
69
+
70
+ ![](docs/tutorial/groups-2.png)
71
+
72
+ Note: Not all devices support groups (not supported by end devices like sensors).
73
+
74
+
75
+ ### Binding
76
+
77
+ https://www.zigbee2mqtt.io/information/binding
78
+
79
+ ### Developer Tab
80
+
81
+ This is a tool for advanced users to test currently unsupported devices or enhance this adapters functionality. More instructions can be found on tab.
82
+ ![](docs/tutorial/tab-dev-1.png)
83
+
84
+ ## Additional info
85
+
86
+ 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.
87
+
88
+ There are knowledge bases that can be useful for working with Zigbee-devices and equipment:
89
+ * in English https://www.zigbee2mqtt.io/
90
+ * in Russian https://myzigbee.ru/
91
+
92
+ ## Supported devices
93
+
94
+ Works with devices from this list https://github.com/ioBroker/ioBroker.zigbee/wiki/Supported-devices
95
+
96
+ ## Donate
97
+
98
+ You can thank the authors by these links:
99
+ * to Kirov Ilya https://www.paypal.me/goofyk
100
+ * to Arthur Rupp https://paypal.me/ArthurRupp
101
+
102
+ <!--
103
+ Placeholder for the next version (at the beginning of the line):
104
+
105
+ https://github.com/AlCalzone/release-script#usage
106
+ npm run release minor -- --all 0.9.8 -> 0.10.0
107
+ npm run release patch -- --all 0.9.8 -> 0.9.9
108
+ npm run release prerelease beta -- --all v0.2.1 -> v0.2.2-beta.0
109
+ Placeholder for the next version (at the beginning of the line):
110
+ ### **WORK IN PROGRESS**
111
+ -->
112
+
113
+ ## Changelog
114
+
115
+ ### 1.6.1 (2021-08)
116
+ * (kirovilya) herdsman compatibility
117
+
118
+
119
+ ### 1.6.0 (2021-08-09)
120
+ ## Attention! Attention! Attention! Attention! Attention! Attention! Attention!
121
+
122
+ After introducing a new z-stack startup procedure into zigbee-herdsman, we got some problems with our adapter in version 1.5.6.
123
+ This was discussed [here](https://github.com/ioBroker/ioBroker.zigbee/issues/1110) and [here](https://github.com/Koenkk/zigbee-herdsman/issues/376)
124
+
125
+ Unfortunately, not all user sticks were able to work successfully with this new init routine. This mainly affected the TI cc2538 based sticks with the 2019 year's firmware. All subsequent firmwares and sticks have no problems when starting the adapter or they can be fixed.
126
+
127
+ At the moment, there is no working solution to this problem, except for updating the firmware of such sticks to a newer one.
128
+ As a fallback, it is proposed to use the old version of zigbee-herdsman 0.13.93, but some of the devices and functionality may not work.
129
+ Therefore, we made a separate version 1.6.0o especially for this case. It can be installed from github at https://github.com/ioBroker/ioBroker.zigbee/tarball/old_herdsman
130
+
131
+ * Update to latest zigbee-herdsman and zigbee-herdsman-converters
132
+ * (PeterVoronov) Update support composite exposes
133
+ * (kirovilya) UI fixes
134
+ * (kirovilya) Sentry support
135
+
136
+ ### 1.5.6 (2021-05-26)
137
+ * (kirovilya) new UI add
138
+
139
+ ### 1.5.5 (2021-05-05)
140
+ * Fixes for new zigbee-herdsman-converters
141
+ * UI fixes
142
+
143
+ ### 1.5.3 (2021-04-30)
144
+ * (arteck) Fix for js-controller 3.3.*
145
+
146
+ ### 1.5.2 (2021-04-29)
147
+ * (asgothian) Groups on dashboard
148
+
149
+
150
+ ### 1.5.1 (2021-04-14)
151
+ * (kirovilya) Dashboard
152
+ * (asgothian) Groups (reworked)
153
+ * [Experimental support EZSP protocol for EFR32 chips](https://github.com/Koenkk/zigbee-herdsman/issues/319) (zigbee-herdsman)
154
+
155
+
156
+ ### 1.4.4 (2021-02-14)
157
+ * (kirovilya) External converters https://www.zigbee2mqtt.io/information/configuration.html#external-converters-configuration
158
+ * (asgothian) Enhancement ping process
159
+ * (asgothian) Devive query state-button
160
+ * (asgothian) State Cleanup button
161
+ * (arteck) Setting to use exposes instead of internal device description
162
+
163
+
164
+ ### 1.4.1 (2020-12)
165
+ * (o0shojo0o) added a kelvin posibility into colortemp
166
+ * (asgothian) Hue_calibration for exposed devices (Use requires PR on zigbee-herdsman-converters, PR is being worked on)
167
+ * (asgothian) fix Tuya Thermostat: restore lost property "preset"
168
+ * (asgothian) Change for Device Availability: Stagger initial ping by 200 ms to prevent network congestion due to a large number of ping requests
169
+ * (asgothian) Change for Device Availability: Ping request triggered on reconnect. Before the herdsman Ping function is used, the adapter attempts to read the "state" dp. If this is successful, no ping is sent and the state is set
170
+ * (asgothian) Change for Device Availability: Set link Quality to 0 when a device is not connected, 10 when it is reconnecting.
171
+ * (asgothian) fix for message "illegal properties x,y" - remove color and color_temp from readable states on device available again (Issue #607)
172
+ * (asgothian) RGB Color can now be entered as "named" color. Implemented names are taken from the list of extended web colors on wikipedia (https://en.wikipedia.org/wiki/Web_colors)
173
+ * (asgothian) change in how RGB color is parsed. Incomplete colors will now be parsed successfully. #FFF will result in R 0, G 15, B 255
174
+ * (asgothian) change in OTA: Message that a device does not respond for OTA query downgraded to "info" from "error"
175
+ * (asgothian) new coordinator card
176
+
177
+
178
+ ### 1.4.0 (2020-12)
179
+ * Many new devices available
180
+
181
+ Starting from version 1.4.0, new devices in iobroker.zigbee will be added automatically, based on the *exposes* described in zigbee-herdsman-converters.
182
+ The *exposes* section describes the device's capabilities, events and control commands. In iobroker.zigbee these descriptions are converted to iobroker states.
183
+ This means that the new device is described correctly enough in zigbee-herdsman-converters to start working with iobroker.zigbee (do not need to add it to our /lib/devices files.js and /lib/states.js).
184
+
185
+ The only thing that is not described (yet, it may change in the future) in zigbee-herdsman-converters is the device image. This is why the device icon on network map uses external links to the resource https://www.zigbee2mqtt.io/images/devices/*.
186
+ If you want to use local images, then you need to put the image file in /admin/img and briefly describe the device in the /lib/devices.js file without the *states*:
187
+ ```
188
+ {
189
+ models: [‘01MINIZB’],
190
+ icon: 'img/ITEAD01ZBMINI. png',
191
+ }
192
+ ```
193
+ in this case, the *states* attribute will be formed based on the *exposes* description and the image will be local.
194
+
195
+ ### 1.3.1 (2020-10-30)
196
+ * [Experimental Zigate support](https://github.com/Koenkk/zigbee-herdsman/issues/242) (zigbee-herdsman)
197
+ * New devices by:
198
+ asgothian, arteck, kirovilya, PaulchenPlump
199
+
200
+ ### 1.3.0 (2020-10-07)
201
+ * More stable (zigbee-herdsman)
202
+ * Backup prior database and nv-data (for z-stack 3) before start adapter
203
+ * Allow to select bind cluster
204
+ * Admin Tab support (experimental)
205
+ * (UncleSamSwiss, DutchmanNL) Translation
206
+ * New devices by:
207
+ arteck, kirovilya, Shade, krumbholz, fre, Alex18081, ae, asgothian,
208
+ Strunzdesign, kairauer, VLGorskij, Hesse-Bub, PaulchenPlump, blackrozes
209
+
210
+ ### 1.2.1 (2020-08-16)
211
+ * Fixes after changing device identify method
212
+ * (Garfonso) Allow to unbind from coordinator
213
+
214
+ ### 1.2.0 (2020-08-09)
215
+ * Serialport 9.0.0. (zigbee-herdsman)
216
+ * Drop support Node < 10 (zigbee-herdsman)
217
+ * Device now identify (for zigbee-herdsman-converters) by model not zigbeeModel
218
+
219
+ Improvements and fixes:
220
+ * (Strunzdesign) Fixed the mapping between bulb levels and adapter levels
221
+ * (kirovilya) Fix ota for unavailable devices
222
+ * (kirovilya) Lazy states - created only when an event arrives
223
+ * (kirovilya) States generator - states are created depending on the device and its endpoints
224
+ * (Shade) Fixed WXKG11LM clicks
225
+ * (allofmex) Improved DeveloperTab logs
226
+ * (allofmex) Add humidity and temperature calibration state to Tuya RH3052
227
+ * (kirovilya) Fixed a typo due to which extPanID was not set
228
+ * (allofmex) Retry reconnect gateway all the time for tcp connected gateway
229
+ * (kirovilya) Allow to collect zigbee-herdsman logs to iobroker logs
230
+ * (kirovilya) Additional states for QBKG12LM
231
+
232
+ New devices:
233
+ * (kirovilya) BlitzWolf BW-IS3, Paulmann 500.67, Paulmann 798.09
234
+ * (kirovilya) DiY Geiger counter https://modkam.ru/?p=1591
235
+ * (kirovilya) DiY 8 Relays + 8 switches https://modkam.ru/?p=1638
236
+ * (kirovilya) DiY Freepad https://github.com/diyruz/freepad
237
+ * (kirovilya) Neo Zigbee Siren Alarm https://szneo.com/en/products/show.php?id=241
238
+ * (Shade) RB 278 T
239
+ * (arteck) TS0601_thermostat
240
+ * (arteck) TS0121
241
+ * (arteck) GL-D-004Z
242
+ * (Shade) WXKG07LM
243
+ * (drohne200) 1746430P7
244
+ * (sebastian) 4058075816459
245
+ * (itProfi) SGMHM-I1
246
+ * (arteck) owvfni3
247
+ * (arteck) TS0001, TS0111
248
+ * (Daniel Dreier) Paulmann 500.45
249
+ * (arteck) ZK-EU-2U
250
+ * (Newan) Busch-Jaeger 6735/6736/6737
251
+ * (andrico21) ZM-L03E-Z
252
+ * (arteck) 915005106701, 9290018187B
253
+ * (frankjoke) HGZB-20-UK, GL-W-001Z
254
+ * (arteck) 4034031P7, 3435011P7
255
+ * (arteck) TS0041
256
+ * (agross) 5062231P7, 5062431P7
257
+ * (kirovilya) TI0001-switch, TI0001-socket
258
+ * (arteck) RB 178 T
259
+ * (arteck) HGZB-07A, AV2010/22, AV2010/22A, TS0041, TS0043
260
+ * (nbars) E1744
261
+ * (Florian Look) GS361A-H04
262
+ * (arteck) ICZB-IW11SW
263
+ * (kirovilya) HS2WD-E
264
+ * (Sacred-Shadow) FL 130 C
265
+ * (arteck) HS3SA, 9290022169, 4096730U7, AC10787, SP 220, SP 222, SP 224, 07004D, BW-IS2, InstaRemote
266
+ * (kirovilya) MCLH-08, MCLH-05
267
+ * (Sacred-Shadow) 1746130P7
268
+ * (mar565) GUNNARP panel round
269
+ * (Erdnuss3003) 4090531P7
270
+
271
+
272
+ ### 1.1.1 (2020-04-17)
273
+ * (kirovilya) Critical. Fixed error starting adapter if cc-chip was only flashed
274
+ * (kirovilya) Nue/3A FNB56-ZSW02LX2.0
275
+ * (Strunzdesign) Added missing raw button events for Philips Hue Smart Button ROM001
276
+ * (Sacred-Shadow) Fix Color for Outdoor Lantern W RGBW OSRAM
277
+
278
+ ### 1.1.0 (2020-04-12)
279
+ new Zigbee-herdsman features:
280
+ * ConBee/RaspBee (experimental support) https://github.com/Koenkk/zigbee-herdsman/issues/72
281
+ * OTA update for some devices (IKEA, OSRAM and other) https://github.com/Koenkk/zigbee2mqtt/issues/2921
282
+ * Touchlink reset and join https://github.com/Koenkk/zigbee2mqtt/issues/2396
283
+ * Green Power devices support https://github.com/Koenkk/zigbee2mqtt/issues/3322
284
+ * (peterfido) iCasa KPD14S und KPD18S hinzu
285
+ * (kirovilya) Moes Zigbee Thermostatic Radiator
286
+ * (kirovilya) LifeControl power plug MCLH-03, bulb MCLH-02, water leak MCLH-07, door sensor MCLH-04
287
+ * (kirovilya) Philips LCT002, LCT011, LTW015, LWG004
288
+ * (kirovilya) Gledopto GL-C-007 with with channel
289
+ * (MultivitaminJuice) Iluminize 511.040
290
+ * (Sacred-Shadow) Bitron 902010/24
291
+ * (kirovilya) Color indication of LQI and Battery icon
292
+ * (kirovilya) Device info modal dialog
293
+ * (arteck) Philips LCT026
294
+ * (obakuhl) Improvements Osram switch mini
295
+ * (arteck) Nue / 3A FB56+ZSW1GKJ2.5, LXN-1S27LX1.0
296
+ * (agross) Philips Signe Floor and Table
297
+ * (arteck) TRADFRI bulb E14 WS 470lm, OSRAM PAR16 TW Z3
298
+ * (kirovilya) Smart remote controller (4 buttons)
299
+ * (allofmex) OTA updates
300
+ * (kirovilya) Aqara opple change mode keys (for binding)
301
+ * (palsch) Heiman HS2WD-E siren
302
+
303
+ ### 1.0.4 (2020-03-14)
304
+ * (kirovilya) Philips Hue Adore Bathroom Mirror Light
305
+ * (kirovilya) Oujiabao Gas and carbon monoxide alarm
306
+ * (kirovilya) Tuya SOS button
307
+ * (Erdnuss3003) Schwaiger ZBT-DIMLight-GLS0800
308
+ * (arteck) Smart Home Pty FB56-ZCW11HG1.4, LXT56-LS27LX1.7
309
+ * (arteck) Xiaomi plug lumi.plug.mmeu01
310
+ * (arteck) Innr RS 228 T, RS 230 C
311
+ * (arteck) Gledopto GL-MC-001, GL-D-003ZS
312
+ * (allmyjoes) Bitron AV2010/21A
313
+ * (arteck) Osram Panel TW 595 UGR22
314
+ * (kirovilya) IKEA SURTE door WS 38x64
315
+ * (andigandi) Philips Hue LCG002, Hue LTG002
316
+ * (arteck) iCasa ICZB-FC
317
+ * (arteck) Osram A60 DIM Z3
318
+ * (arteck) Paulmann 371000001
319
+ * (DaCHRIS) Osram PAR16 DIM Z3
320
+ * (DaCHRIS) Philips LWG001
321
+ * (DaCHRIS) Illuminize 511.202
322
+ * (SchumyHao) TERNCY-SD01 knob dimmer
323
+ * (SchumyHao) Xiaomi lumi.lock.aq1
324
+ * (kirovilya) New eWeLink devices: button, TH sensor, contact sensor, motion sensor
325
+ * (kirovilya) Allow pairing to routers (again)
326
+ * (Erdnuss3003) Philips Hue LCT021
327
+ * (root) Trust ZWLD-100 water leak sensor
328
+ * (smartpran) Bitron AV2010/32
329
+
330
+ ### 1.0.3 (2020-02-09)
331
+ * (Tw1nh34d) Hornbach FLAIR LED
332
+ * (asgothian) Hue smart button, Heiman smoke sensor
333
+ * (kirovilya) Philips LTC014, LTC015
334
+ * (kirovilya) Power states for QBKG11LM
335
+ * (Garfonso) Change role for occupancy state to 'sensor.motion'
336
+ * (kirovilya) Change illuminance state to illuminance_lux (for lux value)
337
+ * (arteck) Philips LCF002
338
+ * (arteck) TRADFRI open/close remote
339
+ * (kirovilya) Tuya sensor TS0201
340
+
341
+ ### 1.0.2 (2020-01-29)
342
+ * (kirovilya) All button events for Aqara Opple switch
343
+ * (ma-john) OSRAM PAR16 RGBW Z3
344
+ * (arteck) Phillips LWA004
345
+ * (MiniMe6666) Heiman SmokeSendor-N-3.0
346
+ * (kirovilya) Force remove device
347
+ * (kirovilya) Fix some networkmap bugs
348
+ * (kirovilya) Extended info button
349
+ * (kirovilya) Long press for WXKG01LM
350
+
351
+ ### 1.0.1 (2020-01-23)
352
+ * fix for old z-stack firmware
353
+
354
+ ### 1.0.0 (2020-01-22)
355
+ * Powered by new [zigbee-herdsman](https://github.com/Koenkk/zigbee-herdsman) library and new [converters database](https://github.com/Koenkk/zigbee-herdsman-converters)
356
+ * Drop support NodeJS 6
357
+ * Serialport 8.0.5 (in zigbee-herdsman)
358
+ * More new devices
359
+ * Some design update
360
+ * Binding
361
+
362
+
363
+
364
+ ## License
365
+ The MIT License (MIT)
366
+
367
+ Copyright (c) 2018-2021 Kirov Ilya <kirovilya@gmail.com>
368
+
369
+ Permission is hereby granted, free of charge, to any person obtaining a copy
370
+ of this software and associated documentation files (the "Software"), to deal
371
+ in the Software without restriction, including without limitation the rights
372
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
373
+ copies of the Software, and to permit persons to whom the Software is
374
+ furnished to do so, subject to the following conditions:
375
+
376
+ The above copyright notice and this permission notice shall be included in
377
+ all copies or substantial portions of the Software.
378
+
379
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
380
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
381
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
382
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
383
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
384
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
385
+ THE SOFTWARE.