Closed vaaarg closed 4 years ago
hmm... some conflict with https://github.com/ioBroker/ioBroker.zigbee/pull/711 we need to think about how to solve out the situation... for now, you can restore this lines in local file https://github.com/ioBroker/ioBroker.zigbee/pull/711/files#diff-6416e6f3ffdcce0e42c767cf0b85b4a8L124
Those two methods (tripe and quad) didn't work for me and it seems neither for the guy from the issue https://github.com/ioBroker/ioBroker.zigbee/issues/699 here. Maybe you have a different version if this button?
It must be different hardware. WXKG11LM does not support triple and quad click
Yep its a different model. lumi.remote.b1acn01 does not support tripe and quad but _lumi.sensorswitch.aq2 does.
now this is a problem - device identification by model - in converters it is one model https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/devices.js#L428 solutions: 1) split models in converters and then split models in our devices 2) make "lazy" states that appear only if the corresponding event arrives
You can try to update from github and check
At least the lumi.remote.b1acn01 does still work as expected after updating the adapter from Github.
Ok. lumi.sensor_switch.aq2 has now tripple and quad chlick again
You can try to update from github and check
thank you ... working again.
following output while updating:
$ ./iobroker url "https://github.com/ioBroker/ioBroker.zigbee/tarball/master" zigbee install https://github.com/ioBroker/ioBroker.zigbee/tarball/master NPM version: 6.14.6 npm install https://github.com/ioBroker/ioBroker.zigbee/tarball/master --loglevel error --prefix "/opt/iobroker" (System call) In file included from ../src/./serialport.h:6, from ../src/serialport.cpp:1:../node_modules/nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:../node_modules/nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:78:69: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen); ^~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:135:71: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate); ^~~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:175:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose); ^~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:215:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush); ^~~~~~~~~~~~~~../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:270:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet); ^~~~~~~~~~~~../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:314:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet); ^~~~~~~~~~~~../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE GetBaudRate(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:363:76: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_GetBaudRate, (uv_after_work_cb)EIO_AfterGetBaudRate); ^~~~~~~~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:409:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain); ^~~~~~~~~~~~~~../src/serialport.cpp: At global scope:../src/serialport.cpp:430:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses] SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) { ^ ../src/serialport.cpp:449:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses] SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) { ^ In file included from ../node_modules/nan/nan.h:56, from ../src/./serialport.h:6, from ../src/serialport.cpp:1:/home/iobroker/.cache/node-gyp/10.22.0/include/node/node.h:573:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^/home/iobroker/.cache/node-gyp/10.22.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~../src/serialport.cpp:483:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(serialport, init); ^~~~~~~~~~~ In file included from /home/iobroker/.cache/node-gyp/10.22.0/include/node/node.h:63, from ../node_modules/nan/nan.h:56, from ../src/./serialport.h:6, from ../src/serialport.cpp:1:/home/iobroker/.cache/node-gyp/10.22.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:/home/iobroker/.cache/node-gyp/10.22.0/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.22.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/iobroker/.cache/node-gyp/10.22.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:../node_modules/nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.22.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type] In file included from ../src/serialport.h:6, from ../src/serialport_unix.cpp:2:../node_modules/nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:../node_modules/nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from /home/iobroker/.cache/node-gyp/10.22.0/include/node/node.h:63, from ../node_modules/nan/nan.h:56, from ../src/serialport.h:6, from ../src/serialport_unix.cpp:2:/home/iobroker/.cache/node-gyp/10.22.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:/home/iobroker/.cache/node-gyp/10.22.0/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.22.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/iobroker/.cache/node-gyp/10.22.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:../node_modules/nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.22.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type] ../src/serialport_unix.cpp: In function ‘int setup(int, OpenBaton*)’:../src/serialport_unix.cpp:176:60: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1005 [-Wformat-truncation=] snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path); ^~~~~~~~~~~~~~~~~~~~~~~~~../src/serialport_unix.cpp:176:13: note: ‘snprintf’ output 20 or more bytes (assuming 1043) into a destination of size 1024 snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/serialport_unix.cpp: In function ‘void EIO_Open(uv_work_t*)’:../src/serialport_unix.cpp:86:60: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1003 [-Wformat-truncation=] snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path); ^~~~~~~~~~~~~~~~~~~~~~~~~~~../src/serialport_unix.cpp:86:13: note: ‘snprintf’ output 22 or more bytes (assuming 1045) into a destination of size 1024 snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../src/poller.cpp:1:../node_modules/nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:../node_modules/nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from /home/iobroker/.cache/node-gyp/10.22.0/include/node/node.h:63, from ../node_modules/nan/nan.h:56, from ../src/poller.cpp:1:/home/iobroker/.cache/node-gyp/10.22.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:/home/iobroker/.cache/node-gyp/10.22.0/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.22.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/iobroker/.cache/node-gyp/10.22.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:../node_modules/nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.22.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type] upload [200] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/philips_white_ambiance_being.png img/philips_white_ambiance_being.png image/png upload [150] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/motion.png img/motion.png image/png upload [100] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/ikea_wireless_dimmer1.png img/ikea_wireless_dimmer1.png image/png upload [90] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/ikea_e14_bulb2.png img/ikea_e14_bulb2.png image/png upload [80] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/hue-smart-button.png img/hue-smart-button.png image/png upload [70] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/gledopto_bulb.png img/gledopto_bulb.png image/png upload [60] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/ewelink_TH01.png img/ewelink_TH01.png image/png upload [50] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/cube.png img/cube.png image/png upload [40] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/bitron_motion.png img/bitron_motion.png image/png upload [30] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/ZWLD-100.png img/ZWLD-100.png image/png upload [20] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/DIYRuZ_R8_8.png img/DIYRuZ_R8_8.png image/png upload [19] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/DIYRuZ_Geiger.png img/DIYRuZ_Geiger.png image/png upload [18] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/DIYRuZ_FreePad.png img/DIYRuZ_FreePad.png image/png upload [17] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/DIYRuZ.png img/DIYRuZ.png image/png upload [16] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/Bitron_AV201021A.png img/Bitron_AV201021A.png image/png upload [15] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/BW-IS3.png img/BW-IS3.png image/png upload [14] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/AV2010_32.png img/AV2010_32.png image/png upload [13] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/86sw2.png img/86sw2.png image/png upload [12] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/86sw1.png img/86sw1.png image/png upload [11] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/img/86plug.png img/86plug.png image/png upload [10] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/i18n/zh-cn/translations.json i18n/zh-cn/translations.json application/json upload [9] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/i18n/ru/translations.json i18n/ru/translations.json application/json upload [8] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/i18n/pt/translations.json i18n/pt/translations.json application/json upload [7] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/i18n/pl/translations.json i18n/pl/translations.json application/json upload [6] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/i18n/nl/translations.json i18n/nl/translations.json application/json upload [5] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/i18n/it/translations.json i18n/it/translations.json application/json upload [4] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/i18n/fr/translations.json i18n/fr/translations.json application/json upload [3] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/i18n/es/translations.json i18n/es/translations.json application/json upload [2] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/i18n/en/translations.json i18n/en/translations.json application/json upload [1] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/i18n/de/translations.json i18n/de/translations.json application/json upload [0] zigbee.admin /opt/iobroker/node_modules/iobroker.zigbee/admin/admin.js admin.js application/javascript Update "system.adapter.zigbee.0" process exited with code 0
If work for all - close issue please
after upgrading to newest version aquara switch does not recognize triple and quad click anymore.
Deleting, repairing, restarting did not help. All 4 actions worked before. (hold also not working) model:WXKG11LM description:Aqara wireless switch supports:single, double click (and triple, quadruple, hold, release depending on model) model:lumi.sensor_switch.aq2 type:EndDevice nwk:59725 manuf id:4151 manufacturer:LUMI power:Battery app version:3 hard version:2 zcl version:1 stack version:2 date code:20161128 build:3000-0001 interviewed:true configured:false
endpoint:1 profile:260 input clusters:genBasic (0) 65535 genOnOff (6) output clusters:genBasic (0) genGroups (4) 65535
zigbee.0 | 2020-08-10 07:05:18.050 | info | (9441) 0x00158d00023e6543 (addr 59725): WXKG11LM - Xiaomi Aqara wireless switch (EndDevice) zigbee.0 | 2020-08-10 07:05:17.966 | info | (9441) Currently 32 devices are joined: zigbee.0 | 2020-08-10 07:05:17.941 | info | (9441) --> transmitPower : normal zigbee.0 | 2020-08-10 07:05:17.940 | info | (9441) Unable to disable LED, unsupported function. zigbee.0 | 2020-08-10 07:05:11.924 | info | (9441) Coordinator firmware version: {"type":"zStack12","meta":{"transportrev":2,"product":0,"majorrel":2,"minorrel":6,"maintrel":3,"revision":20190608}} zigbee.0 | 2020-08-10 07:05:09.668 | info | (9441) Starting Zigbee... zigbee.0 | 2020-08-10 07:05:09.560 | info | (9441) starting. Version 1.2.0 in /opt/iobroker/node_modules/iobroker.zigbee, node: v10.22.0, js-controller: 3.1.6