koenkk / zigbee-herdsman Goto Github PK
View Code? Open in Web Editor NEWA Node.js Zigbee library
License: MIT License
A Node.js Zigbee library
License: MIT License
Sorry to bother you again about this, but unfortunately there seems to be a slight problem with the current implementation of manufacturer-specific clusters: As far as I can see from the code and from testing, they only get resolved from number to cluster object on incoming packets if the manufacturer code is set in the ZCL frame header, but AFAIK it is common (and probably legal) to use these manufacturer specific clusters without setting the flag and code again in the ZCL header (in contrast to how manufacturer-specific attributes must be used).
It would probably be best to take these clusters in account whenever we're dealing with a device of that manufacturer. But unfortunately I do not see an easy solution for this issue as from what I can see there is no further context available when the frame is being parsed, but maybe you have an idea?
For me, this is currently not a real problem, as it's only on incoming packets and as I still get the numeric attribute ids back when reading attributes, but it somehow defeats the purpose of the implementation a bit (at least for my use case).
Thanks,
Felix
zigbee2mqtt:info 9/17/2019, 8:12:14 AM Starting zigbee2mqtt version 1.6.0 (commit #d24c41c)
zigbee2mqtt:info 9/17/2019, 8:12:14 AM Starting zigbee-herdsman...
(node:4150) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'find' of undefined
at Function.<anonymous> (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:154:51)
at Generator.next (<anonymous>)
at /opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:7:71
at new Promise (<anonymous>)
at __awaiter (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:3:12)
at Function.find (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:144:16)
at Function.<anonymous> (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:139:40)
at Generator.next (<anonymous>)
at /opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:7:71
at new Promise (<anonymous>)
(node:4150) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 4)
(node:4150) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(node:4150) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'find' of undefined
at Function.<anonymous> (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:154:51)
at Generator.next (<anonymous>)
at /opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:7:71
at new Promise (<anonymous>)
at __awaiter (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:3:12)
at Function.find (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:144:16)
at Function.<anonymous> (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:139:40)
at Generator.next (<anonymous>)
at /opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:7:71
at new Promise (<anonymous>)
(node:4150) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 5)
(node:4150) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'find' of undefined
at Function.<anonymous> (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:154:51)
at Generator.next (<anonymous>)
at /opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:7:71
at new Promise (<anonymous>)
at __awaiter (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:3:12)
at Function.find (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:144:16)
at Function.<anonymous> (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:139:40)
at Generator.next (<anonymous>)
at /opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:7:71
at new Promise (<anonymous>)
(node:4150) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 6)
(node:4150) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'find' of undefined
at Function.<anonymous> (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:154:51)
at Generator.next (<anonymous>)
at /opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:7:71
at new Promise (<anonymous>)
at __awaiter (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:3:12)
at Function.find (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:144:16)
at Function.<anonymous> (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:139:40)
at Generator.next (<anonymous>)
at /opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:7:71
at new Promise (<anonymous>)
(node:4150) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 9)
(node:4150) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'find' of undefined
at Function.<anonymous> (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:154:51)
at Generator.next (<anonymous>)
at /opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:7:71
at new Promise (<anonymous>)
at __awaiter (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:3:12)
at Function.find (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:144:16)
at Function.<anonymous> (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:139:40)
at Generator.next (<anonymous>)
at /opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/controller/model/device.js:7:71
at new Promise (<anonymous>)
(node:4150) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 10)
zigbee2mqtt:info 9/17/2019, 8:12:15 AM zigbee-herdsman started
This is with latest zigbee2mqtt development version.
Previously, under Windows, you could specify a com port by name, for example, "COM57". Now it doesn't work.
Error: ENOENT: no such file or directory, lstat 'C:\Projects\ioBroker\node_modules\iobroker\COM57'
at Object.realpathSync (fs.js:1657:15)
at Object.realpathSync [as RealpathSync] (C:\Projects\ioBroker\node_modules\iobroker.zigbee\node_modules\zigbee-herdsman\dist\utils\realpathSync.js:10:25)
at Function.<anonymous> (C:\Projects\ioBroker\node_modules\iobroker.zigbee\node_modules\zigbee-herdsman\dist\adapter\adapter.js:56:50)
at Generator.next (<anonymous>)
at fulfilled (C:\Projects\ioBroker\node_modules\iobroker.zigbee\node_modules\zigbee-herdsman\dist\adapter\adapter.js:5:58)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:189:7)
Trying to change to '\.\COM57' like describe here https://github.com/Koenkk/zigbee2mqtt.io/blob/master/docs/information/windows.md
ENOTSUP: operation not supported on socket, lstat '\\.\COM57\'
at Object.realpathSync (fs.js:1617:13)
at Object.realpathSync [as RealpathSync] (C:\Projects\ioBroker\node_modules\iobroker.zigbee\node_modules\zigbee-herdsman\dist\utils\realpathSync.js:10:25)
at Function.<anonymous> (C:\Projects\ioBroker\node_modules\iobroker.zigbee\node_modules\zigbee-herdsman\dist\adapter\adapter.js:56:50)
at Generator.next (<anonymous>)
at fulfilled (C:\Projects\ioBroker\node_modules\iobroker.zigbee\node_modules\zigbee-herdsman\dist\adapter\adapter.js:5:58)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:189:7)
Got unknown cluster 23 with device ORVIBO CR11S8UZ:
2019-11-03T06:48:38.964Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,26,68,129,0,0,23,0,123,200,1,1,0,102,0,52,130,107,0,0,6,25,0,8,7,0,0,123,200,29,126]
2019-11-03T06:48:38.965Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,26,68,129,0,0,23,0,123,200,1,1,0,102,0,52,130,107,0,0,6,25,0,8,7,0,0,123,200,29,126]
2019-11-03T06:48:38.966Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 26 - 2 - 4 - 129 - [�{���f4�k����{��] - 126
2019-11-03T06:48:38.969Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - incomingMsg - {"groupid":0,"clusterid":23,"srcaddr":51323,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":102,"securityuse":0,"timestamp":7045684,"transseqnumber":0,"len":6,"data":{"type":"Buffer","data":[25,0,8,7,0,0]}}
2019-11-03T06:48:38.972Z zigbee-herdsman:controller:log Received 'raw' data '{"clusterID":23,"data":{"type":"Buffer","data":[25,0,8,7,0,0]},"networkAddress":51323,"endpoint":1,"linkquality":102,"groupID":0}'
2019-11-03T06:48:38.976Z zigbee-herdsman:controller:error Error while retrieving cluster for raw 'Error: Cluster with key '23' does not exist'
2019-11-03T06:48:38.985Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
Can't find description of this cluster...
Hi
Is there any documentation about API used?
I'd like to integrate this into node-red
Would be cool to have zigbee2mgtt nodes there.
Detail here https://www.npmjs.com/advisories/596
Digi's devices, like mentioned above, or is this a cc253x with custom firmware only?
I ask because I use them with node-red-contrib-xbee package and custom flows. They have great range, easy to work with (uart), and comes in a 63mW package, with possibility to use external antennas.
I switched my zigbee2mqtt
docker container from latest
to latest-dev
. On startup I was getting:
> [email protected] start /app
> node index.js
zigbee2mqtt:error 2019-10-18T22:06:41: Error while starting zigbee-herdsman
zigbee2mqtt:error 2019-10-18T22:06:41: Failed to start zigbee
zigbee2mqtt:error 2019-10-18T22:06:41: Exiting...
zigbee2mqtt:error 2019-10-18T22:06:41: Error: Path '/dev/ttyACM0' does not exist
at Object.<anonymous> (/app/node_modules/zigbee-herdsman/dist/adapter/serialPortUtils.js:34:19)
at Generator.next (<anonymous>)
at fulfilled (/app/node_modules/zigbee-herdsman/dist/adapter/serialPortUtils.js:5:58)
at process._tickCallback (internal/process/next_tick.js:68:7)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: `node index.js`
npm ERR! Exit status 1
I added this in serialPortUtils.js
near the issue to get some debug info:
let devices = await SerialPort.list()
console.warn(devices);
const child_process = require('child_process');
console.warn(child_process.execSync('ls /dev/tty*').toString('utf8'));
which output:
[
{ manufacturer: undefined,
serialNumber: undefined,
pnpId: undefined,
locationId: undefined,
vendorId: undefined,
productId: undefined,
path: '/dev/ttyUSB0'
},
{ manufacturer: undefined,
serialNumber: undefined,
pnpId: undefined,
locationId: undefined,
vendorId: undefined,
productId: undefined,
path: '/dev/ttyUSB1'
},
{ manufacturer: undefined,
serialNumber: undefined,
pnpId: undefined,
locationId: undefined,
vendorId: undefined,
productId: undefined,
path: '/dev/ttyUSB2'
},
{ manufacturer: undefined,
serialNumber: undefined,
pnpId: undefined,
locationId: undefined,
vendorId: undefined,
productId: undefined,
path: '/dev/ttyS0'
},
{ manufacturer: undefined,
serialNumber: undefined,
pnpId: undefined,
locationId: undefined,
vendorId: undefined,
productId: undefined,
path: '/dev/ttyS1'
},
{ manufacturer: undefined,
serialNumber: undefined,
pnpId: undefined,
locationId: undefined,
vendorId: undefined,
productId: undefined,
path: '/dev/ttyS2'
},
{ manufacturer: undefined,
serialNumber: undefined,
pnpId: undefined,
locationId: undefined,
vendorId: undefined,
productId: undefined,
path: '/dev/ttyS3'
}
]
/dev/tty
/dev/ttyACM0
Note that all the devices returned by serialport.list()
don't appear to match what is in /dev/
. I tried changing /dev/ttyACM0
to /dev/ttyUSB0
in both my docker config and z2m config and that fixed it! However this still seems like an issue that would affect other users not using one of these particular device names.
Probably related to serialport/node-serialport#1944
For reference my original docker-compose was:
zigbee2mqtt:
container_name: zigbee2mqtt
image: koenkk/zigbee2mqtt:latest-dev
depends_on:
- mosquitto
volumes:
- ./zigbee2mqtt:/app/data
devices:
- /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0:/dev/ttyACM0
restart: unless-stopped
network_mode: host
Hi @Koenkk ,
I have a new zigbee device. it sends Match Description Request to the coordinator during join procedure. but the coordinator doesn't respond to it.
I use the latest version of CC2531 firmware and zigbee2mqtt. you can see the issue in below image:
the normal condition should be like below:
Is this normal behavior or a bug?
How can I start developing on this project? When i enter npm start the project build the ts files. But how can I test the methods and endpoints?
Hi!
A question for my understanding: what exactly does a hard reset do? A soft reset is (as far as I understood that right) so to say a restart of the Z-Stack Software, right?
I had sometimes the problem that device interviews on pairing failed - worked around that by stopping the herdsman, turning USB power off and on and then it always worked again. A soft-reset didn't help, could a hard reset replace the USB power cycling in that case?
Regards,
Sebastian
Hi,
I'm fairly new to Zigbee and ZNP. I wonder where is network states retained in a system of zigbee-shephard/herdsman + ZNP module?
I know zigbee shephard has some states saved in a local json file. Is that all? Is it possible to transparently replace the ZNP module with a new one, while still able to maintain the network?
Sometimes when I enable pairing, I get a strange command (with code 200). Parser falls:
2019-10-16T18:37:05.609Z zigbee-herdsman:controller:log Permit joining
2019-10-16T18:37:05.610Z zigbee-herdsman:zStack:znp:SREQ --> ZDO - mgmtPermitJoinReq - {"addrmode":15,"dstaddr":65532,"duration":254,"tcsignificance":0}
2019-10-16T18:37:05.611Z zigbee-herdsman:zStack:unpi:writer --> frame [254,5,37,54,15,252,255,254,0,228]
2019-10-16T18:37:09.570Z zigbee-herdsman:zStack:unpi:parser <-- [254,1,101,54,0,82]
2019-10-16T18:37:09.570Z zigbee-herdsman:zStack:unpi:parser --- parseNext [254,1,101,54,0,82]
2019-10-16T18:37:09.570Z zigbee-herdsman:zStack:unpi:parser --> parsed 1 - 3 - 5 - 54 - [] - 82
2019-10-16T18:37:09.570Z zigbee-herdsman:zStack:znp:SRSP <-- ZDO - mgmtPermitJoinReq - {"status":0}
2019-10-16T18:37:09.570Z zigbee-herdsman:zStack:unpi:parser --- parseNext []
2019-10-16T18:37:09.579Z zigbee-herdsman:zStack:unpi:parser <-- [254,3,69,182,0,0,0,240]
2019-10-16T18:37:09.579Z zigbee-herdsman:zStack:unpi:parser --- parseNext [254,3,69,182,0,0,0,240]
2019-10-16T18:37:09.579Z zigbee-herdsman:zStack:unpi:parser --> parsed 3 - 2 - 5 - 182 - [] - 240
2019-10-16T18:37:09.579Z zigbee-herdsman:zStack:znp:AREQ <-- ZDO - mgmtPermitJoinRsp - {"srcaddr":0,"status":0}
2019-10-16T18:37:09.579Z zigbee-herdsman:zStack:unpi:parser --- parseNext []
2019-10-16T18:37:09.742Z zigbee-herdsman:zStack:unpi:parser <-- [254,11,69,200,0,0,30,116,232,24,0,75,18,0,2,71]
2019-10-16T18:37:09.743Z zigbee-herdsman:zStack:unpi:parser --- parseNext [254,11,69,200,0,0,30,116,232,24,0,75,18,0,2,71]
2019-10-16T18:37:09.743Z zigbee-herdsman:zStack:unpi:parser --> parsed 11 - 2 - 5 - 200 - [�t��K��] - 71
2019-10-16T18:37:09.744Z zigbee-herdsman:zStack:znp:error Error while parsing to ZpiObject 'Error: CommandID '200' from subsystem '5' not found
at Function.fromUnpiFrame (c:\Projects\ioBroker\node_modules\iobroker.zigbee\node_modules\zigbee-herdsman\dist\adapter\z-stack\znp\zpiObject.js:44:19)
at Znp.onUnpiParsed (c:\Projects\ioBroker\node_modules\iobroker.zigbee\node_modules\zigbee-herdsman\dist\adapter\z-stack\znp\znp.js:74:48)
at emitOne (events.js:116:13)
at Parser.emit (events.js:211:7)
at Parser.parseNext (c:\Projects\ioBroker\node_modules\iobroker.zigbee\node_modules\zigbee-herdsman\dist\adapter\z-stack\unpi\parser.js:49:26)
at Parser._transform (c:\Projects\ioBroker\node_modules\iobroker.zigbee\node_modules\zigbee-herdsman\dist\adapter\z-stack\unpi\parser.js:35:14)
at Parser.Transform._read (_stream_transform.js:186:10)
at Parser.Transform._write (_stream_transform.js:174:12)
at doWrite (_stream_writable.js:396:12)
at writeOrBuffer (_stream_writable.js:382:5)'
2019-10-16T18:37:09.744Z zigbee-herdsman:zStack:unpi:parser --- parseNext []
2019-10-16T18:38:18.516Z zigbee-herdsman:controller:log Disable joining
2019-10-16T18:38:18.518Z zigbee-herdsman:zStack:znp:SREQ --> ZDO - mgmtPermitJoinReq - {"addrmode":15,"dstaddr":65532,"duration":0,"tcsignificance":0}
2019-10-16T18:38:18.520Z zigbee-herdsman:zStack:unpi:writer --> frame [254,5,37,54,15,252,255,0,0,26]
2019-10-16T18:38:18.542Z zigbee-herdsman:zStack:unpi:parser <-- [254,1,101,54,0,82]
2019-10-16T18:38:18.542Z zigbee-herdsman:zStack:unpi:parser --- parseNext [254,1,101,54,0,82]
2019-10-16T18:38:18.543Z zigbee-herdsman:zStack:unpi:parser --> parsed 1 - 3 - 5 - 54 - [] - 82
2019-10-16T18:38:18.543Z zigbee-herdsman:zStack:znp:SRSP <-- ZDO - mgmtPermitJoinReq - {"status":0}
2019-10-16T18:38:18.543Z zigbee-herdsman:zStack:unpi:parser --- parseNext []
2019-10-16T18:38:18.546Z zigbee-herdsman:zStack:unpi:parser <-- [254,1,69,203,0,143,254,3,69,182,0,0,0,240]
2019-10-16T18:38:18.547Z zigbee-herdsman:zStack:unpi:parser --- parseNext [254,1,69,203,0,143,254,3,69,182,0,0,0,240]
2019-10-16T18:38:18.547Z zigbee-herdsman:zStack:unpi:parser --> parsed 1 - 2 - 5 - 203 - [] - 143
2019-10-16T18:38:18.547Z zigbee-herdsman:zStack:znp:AREQ <-- ZDO - permitJoinInd - {"duration":0}
2019-10-16T18:38:18.548Z zigbee-herdsman:zStack:unpi:parser --- parseNext [254,3,69,182,0,0,0,240]
2019-10-16T18:38:18.548Z zigbee-herdsman:zStack:unpi:parser --> parsed 3 - 2 - 5 - 182 - [] - 240
2019-10-16T18:38:18.548Z zigbee-herdsman:zStack:znp:AREQ <-- ZDO - mgmtPermitJoinRsp - {"srcaddr":0,"status":0}
2019-10-16T18:38:18.548Z zigbee-herdsman:zStack:unpi:parser --- parseNext []
Hi @Koenkk
i found that deconz use some Sort of Channel Change Procedure for End-Devices.
Found some Stuff on TI-Forum: https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread/f/158/p/515585/1871970
It would be great if we would also implement this because this would allow the change of zigbee channel (automaticly) by command and hopefuly the End-Devices also move to new channel.
As already mentioned in my last pull request, I am implementing support for some ubisys devices at the moment. To e.g. calibrate their shutter controller to the run-time from fully open to fully closed, they use quite a lot of manufacturer-specific attributes within standard clusters (e.g. attributes 0x1000 and up in closuresWindowCovering
).
Currently, I have these implemented as numeric values in code but thought it might be nicer to have them somewhere in a central location, but could not really figure out an obvious way to do it. One idea is to implement them in additional clusters that have numerical ids with the manufacturer id as upper bytes, e.g. for ubisys (manufacturer id is 0x10f2) and the cluster closuresWindowCovering
(258 = 0x102) it would be 0x10f20102 = 284295426. But even this would mean that I will need to touch quite some central code inside zigbee-shepherd and zigbee2mqtt to implement it correctly...
Do you have any opinion or suggestions for me or should I rather stick with the way I have it implemented currently?
Current implementation in my code: https://github.com/felixstorm/zigbee2mqtt/blob/f41f754135f918a9b60ad14501311e48f5ae1114/lib/extension/ubisys.js#L166
ubisys documentation (if interested): https://www.ubisys.de/wp-content/uploads/ubisys-j1-technical-reference.pdf
Thanks,
Felix
Hi @Koenkk
i´m see on different device types like Konke that the request themeselve isnt in sync with database entry.
this two entrys show what i´m mean by Konke Devices:
{"id":9,"type":"EndDevice","ieeeAddr":"0x00158d00024a48c6","nwkAddr":53008,"manufId":4151,"manufName":"LUMI","powerSource":"Battery","modelId":"lumi.sensor_cube.aqgl01","epList":[1,2,3],"endpoints":{"1":{"epId":1,"inClusterList":[],"outClusterList":[],"clusters":{}},"2":{"epId":2,"inClusterList":[],"outClusterList":[],"clusters":{}},"3":{"epId":3,"inClusterList":[],"outClusterList":[],"clusters":{}}},"interviewCompleted":true,"meta":{},"_id":"aw0NAXV02RjNllon"}
{"id":21,"type":"EndDevice","ieeeAddr":"0x086bd7fffee972e8","nwkAddr":54718,"manufId":4098,"manufName":"Konke","powerSource":"Unknown","modelId":"3AFE130104020015","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":1026,"inClusterList":[0,1,3,1280],"outClusterList":[3],"clusters":{}}},"appVersion":19,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":false,"meta":{},"_id":"lZtnvDFf0qJI5w9W"}
on the first ones i modify the entry and add Battery and now it works great.
it seems that the state of report isn´t in sync via database entry because i see on log that battery as type is reporting correctly but doesnt write on readResponse.
for simple hack we could do something like:
https://github.com/Koenkk/zigbee-herdsman/blob/master/src/controller/controller.ts#L432
if ((type === 'readResponse' || type === 'attributeReport') && data.powerSource && !device.get('powerSource')) {
await device.set('powerSource', data.powerSource);
}
but this looks really hacky to me.
maybe we could add something like loop on values and check if empty or unknown and check if value exists by Response-Return and write them back instant.
Hope you could follow :)
Hi @Koenkk
It seem that your Power-Source Mapping seem to be wrong or the End-Device from Konke seems to be report wrong Power-Source-Value �[34mzigbee2mqtt:debug�[39m 2019-10-13T18:36:52: Received Zigbee message from 'konke_motion_1', type 'readResponse', cluster 'genBasic', data '{"modelId":"3AFE14010402000D","manufacturerName":"Konke","powerSource":0}' from endpoint 1 with groupID 0
.
With this i get Unknown
as Result but we know the Device use Battery :)
I'm using @hobbyquaker node-red zigbee implementation (herdsman v0.12.3) and switched from CC2531 to Z-Stack 3.0 with CC1352P-2.
In this process I changed my Network Key and the PANId. The PANId currently set in the node settings is 1A63.
It worked quite flawlessly and I could easily pair all my devices (even without bringing them near the coordinator) but one issue remains: I can no longer join my CC2530 + CC2591 router.
I have already re-flashed the router but to no avail. Before starting to play again with PANId and Network Key, I have some questions:
Hi friends,
I have an standard HA light switch. when it wants to join, after association response, the coordinator doesn't transport security key, so the join procedure isn't continued. I try in multiple times, in one time it works and the device joined. but now it doesn't join again.
you can see the zigbee log below:
3-gangs switch log.zip
I updated to latest development version of Zigbee2MQTT and I'm getting this kind of errors all the time now.
Seems to be something within Zigbee-Herdsman.
zigbee2mqtt:error 2019-10-07T07:44:06: Publish 'set' 'state' to '0x00158d0001d0f272' failed: 'Error: SRSP - AF - dataRequest after 6000ms'
zigbee2mqtt:info 2019-10-07T07:44:06: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"zigbee_publish_error","message":"Publish 'set' 'state' to '0x00158d0001d0f272' failed: 'Error: SRSP - AF - dataRequest after 6000ms'","meta":{"friendly_name":"0x00158d0001d0f272"}}'
(node:25609) UnhandledPromiseRejectionWarning: Error: AREQ - AF - dataConfirm after 10000ms
at Timeout.object.timer.setTimeout [as _onTimeout] (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/utils/waitress.js:44:24)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)
(node:25609) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 11)
(node:25609) UnhandledPromiseRejectionWarning: Error: AREQ - AF - dataConfirm after 10000ms
at Timeout.object.timer.setTimeout [as _onTimeout] (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/utils/waitress.js:44:24)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)
(node:25609) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 12)
(node:25609) UnhandledPromiseRejectionWarning: Error: AREQ - AF - dataConfirm after 10000ms
at Timeout.object.timer.setTimeout [as _onTimeout] (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/utils/waitress.js:44:24)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)
(node:25609) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 13)
(node:25609) UnhandledPromiseRejectionWarning: Error: AREQ - AF - dataConfirm after 10000ms
at Timeout.object.timer.setTimeout [as _onTimeout] (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/utils/waitress.js:44:24)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)
zigbee2mqtt:error 2019-10-07T07:46:10: Publish 'set' 'state' to '0x000b57fffe8be58f' failed: 'Error: SRSP - AF - dataRequest after 6000ms'
zigbee2mqtt:info 2019-10-07T07:46:10: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"zigbee_publish_error","message":"Publish 'set' 'state' to '0x000b57fffe8be58f' failed: 'Error: SRSP - AF - dataRequest after 6000ms'","meta":{"friendly_name":"0x000b57fffe8be58f"}}'
(node:25609) UnhandledPromiseRejectionWarning: Error: AREQ - AF - dataConfirm after 10000ms
at Timeout.object.timer.setTimeout [as _onTimeout] (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/utils/waitress.js:44:24)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)
(node:25609) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 16)
zigbee2mqtt:error 2019-10-07T07:46:37: Publish 'set' 'state' to '0x00124b001d3ab1b9' failed: 'Error: SRSP - AF - dataRequest after 6000ms'
zigbee2mqtt:info 2019-10-07T07:46:37: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"zigbee_publish_error","message":"Publish 'set' 'state' to '0x00124b001d3ab1b9' failed: 'Error: SRSP - AF - dataRequest after 6000ms'","meta":{"friendly_name":"0x00124b001d3ab1b9"}}'
(node:25609) UnhandledPromiseRejectionWarning: Error: AREQ - AF - dataConfirm after 10000ms
at Timeout.object.timer.setTimeout [as _onTimeout] (/opt/zigbee2mqtt-herdsman/node_modules/zigbee-herdsman/dist/utils/waitress.js:44:24)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)
(node:25609) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 17)
In the previous version of the "shepherd" it was possible to start pairing on a specific router.
I took this opportunity.
https://github.com/kirovilya/zigbee-shepherd/blob/master/lib/components/controller.js#L395
By transmitting the network address of the router, you could start pairing on a specific device. Now this opportunity has disappeared.
I propose to return this opportunity :)
Hi @Koenkk
i´m on the test for different of my devices who work with shepherd but doesnt work with herdsman.
The faulty Device from Bitron (AV2010/34) wont join because it use the readsp from endpoint 4 but should use them for basic interview from endpoint 1.
�[34mzigbee2mqtt:debug�[39m 2019-09-29T07:40:21: Device 'FourTouchWallSwitch_Wohnzimmer' announced itself
�[34mzigbee2mqtt:debug�[39m 2019-09-29T07:40:25: Received Zigbee message from 'FourTouchWallSwitch_Wohnzimmer' of type 'readResponse' with data '{}' from endpoint 4 with groupID 0
�[33mzigbee2mqtt:warn �[39m 2019-09-29T07:40:25: Received message from unsupported device with Zigbee model 'undefined'
�[33mzigbee2mqtt:warn �[39m 2019-09-29T07:40:25: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html.
�[34mzigbee2mqtt:debug�[39m 2019-09-29T07:40:25: Received Zigbee message from 'FourTouchWallSwitch_Wohnzimmer' of type 'readResponse' with data '{}' from endpoint 4 with groupID 0
�[33mzigbee2mqtt:warn �[39m 2019-09-29T07:40:25: Received message from unsupported device with Zigbee model 'undefined'
�[33mzigbee2mqtt:warn �[39m 2019-09-29T07:40:25: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html.
�[34mzigbee2mqtt:debug�[39m 2019-09-29T07:40:25: Received Zigbee message from 'FourTouchWallSwitch_Wohnzimmer' of type 'readResponse' with data '{}' from endpoint 4 with groupID 0
�[33mzigbee2mqtt:warn �[39m 2019-09-29T07:40:25: Received message from unsupported device with Zigbee model 'undefined'
�[33mzigbee2mqtt:warn �[39m 2019-09-29T07:40:25: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html.
�[32mzigbee2mqtt:info �[39m 2019-09-29T07:40:25: Successfully interviewed 'FourTouchWallSwitch_Wohnzimmer', device has successfully been paired
�[33mzigbee2mqtt:warn �[39m 2019-09-29T07:40:25: Device 'FourTouchWallSwitch_Wohnzimmer' with Zigbee model 'undefined' is NOT supported, please follow https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
�[32mzigbee2mqtt:info �[39m 2019-09-29T07:40:25: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"interview_successful","meta":{"friendly_name":"FourTouchWallSwitch_Wohnzimmer","supported":false}}'
``
I updated to 1.7.0. and it worked until I tried to use my ikea dimmer. My system immediately got stuck.
I tried several things (restarting, reinstalling) but only reflashing my stick made it work again.
There is no error but when I'm using my ikea dimmer now the system gets extremely slow. Other devices won't work for some seconds. It feels like the dimmer sends to many messages and the system gets stuck because it has to worked itself though the messages. Inputs from other devices are handled after that.
If I don't use the dimmer other devices work immediately. The device worked fine in former versions.
If someone can reproduce this users with ikea dimmers should be warned, because they might need to reflash, if the ikea dimmer does something nasty here.
Hi Koenkk! First of all: Thanks for your awesome work!
I have questions about the herdsman:
Regards,
Sebastian
It would be nice to expose the zigbee timestamp, which gives any higher up layer the best way to process timing sensitive messages like dimmer move
commands. See also: https://github.com/Koenkk/zigbee-herdsman/blob/master/src/adapter/z-stack/znp/definition.ts#L1146
Hey, I updated Hassio to latest version 1.0 and now zigbee2mqtt exits with an error:
Running zigbee2mqtt-edge on latest commit.
zigbee2mqtt:error 2019-10-11T14:18:52: Error while starting zigbee-herdsman
zigbee2mqtt:error 2019-10-11T14:18:52: Error: SRSP - SYS - version after 6000ms
at Timeout.object.timer.setTimeout [as _onTimeout] (/app/node_modules/zigbee-herdsman/dist/utils/waitress.js:44:24)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)
zigbee2mqtt:error 2019-10-11T14:18:52: Failed to start zigbee
zigbee2mqtt:error 2019-10-11T14:18:52: Exiting...
zigbee2mqtt:error 2019-10-11T14:18:52: Error: SRSP - SYS - version after 6000ms
at Timeout.object.timer.setTimeout [as _onTimeout] (/app/node_modules/zigbee-herdsman/dist/utils/waitress.js:44:24)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)
npm
ERR! code ELIFECYCLE
npm ERR! errno 1
Hey Koenkk, I think a new Issue for discussions around the bind tracking makes sense :-)
Right now I'm doing the tracking in the device.meta, looks like this:
"binds":[{"endpoint":1,"cluster":"genOnOff","targetType":"endpoint","targetDevice":"0x0017880102fe0180","targetEndpoint":11}]
Should we move that to the Endpoint Object instead? What do you think of the scheme itself? Using a Set instead of an Array? I think a Set will not offer an advantage as it will not prevent adding to Objects with same content. So right now I'm using a construct like this
if (!device.meta.binds.find(b => {
return b.endpoint === bind.endpoint &&
b.cluster === bind.cluster &&
b.targetDevice === bind.targetDevice &&
b.targetEndpoint === bind.targetEndpoint;
})) {
device.meta.binds.push(bind);
device.save();
}
to prevent adding the same bind more than once. Do you have a more elegant suggestion for this?
Hi,
i have these:
and it seams not supported in zigbee2mqtt, that i will try in the next step.
I started to figure out how it works.
First I found it is not able to pair at all.
Than I made a PacketSniffing on zigbee, and found out that the device sends Broadcast if it is pressed and released.
Yesterday i dived into the sourcecode to do an "Proove of Concept" how to support that kind of device. But after hours of reading i figured out that I knew not enough about the CC2531 API how to get broadcast packets at all.
It would be very helpful if somebody could give me a hint how to capture broadcast packets with the "zigbee-herdsman"?
I will attach the packet trace later today.
thx in advance
meno
This allow devices to join directly to coordinator by using the IEEE address.
Could be help when you reset the NVRAM of your coordinator and you want to push back some devices who are hard to join into the network.
Can you give me an idea on how difficult it may be to add a driver for the XBee s2c module? It has some characteristics I find more useful than the typical USB sticks for the TI chips, such as various power and antenna options.
I have quite a bit of familiarity with the module, but I don't have a lot of knowledge on how much the cc chips currently handle. The XBee has router/endpoint/coordinator modes, and has a fairly simple but low level API to send and receive various frames, and pass through most (perhaps not all) ZDO frames.
I dont know how much work this is and I dont know if it would work, but I wanted to use cc2530 over UART connected to an esp8266 or arduino.
I dont know where to start. I flashed the z-stack firmware from Koenkk on the cc2530 and connected with UART to arduino. Somebody give me a starting point where to start?
Should I start with the development Board from Texas Instruments?
At the moment, calls like getDevice
are async, because it might query the database. Often it doesn't as it uses Device.lookup
. But herdsman could operate with the in-memory data structures as the source of truth, only synced to disk in a best-effort manner.
That would make the path between receiving message from a device to sending a message in response to another device a single tick of the runloop.
If I am not mistaken, only groups and devices are stored directly, the rest (eg endpoints) are stored via the device. It would be even nicer to provide a default storage adapter, but allow libraries to bring an alternative implementation.
It would also be nice if the data store supports custom properties. So that users of the library have a place to store properties like the device friendly name without having to maintain a parallel data store.
Motion sensors disconnected tried to repair but for some reason keep getting zigbee-herdsman:controller:log Not interviewing '0x00158d00035ffa60', completed 'true', in progress 'false'
I removed all occurances of the device in database.db and configuration
here is the relevant logs:
2019-11-03T05:12:18.705Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,69,203,254,113,254,3,69,182,0,0,0,240]
2019-11-03T05:12:18.705Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 2 - 5 - 203 - [�] - 113
2019-11-03T05:12:18.705Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - permitJoinInd - {"duration":254}
2019-11-03T05:12:18.705Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,69,182,0,0,0,240]
2019-11-03T05:12:18.706Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 5 - 182 - [] - 240
2019-11-03T05:12:18.706Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - mgmtPermitJoinRsp - {"srcaddr":0,"status":0}
2019-11-03T05:12:18.706Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2019-11-03T05:12:55.077Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,69,196,110,129,0,109]
2019-11-03T05:12:55.077Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,69,196,110,129,0,109]
2019-11-03T05:12:55.077Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 5 - 196 - [n�] - 109
2019-11-03T05:12:55.077Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":33134,"relaycount":0,"relaylist":[]}
2019-11-03T05:12:55.078Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2019-11-03T05:12:55.122Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,69,196,110,129,0,109]
2019-11-03T05:12:55.122Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,69,196,110,129,0,109]
2019-11-03T05:12:55.122Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 5 - 196 - [n�] - 109
2019-11-03T05:12:55.123Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":33134,"relaycount":0,"relaylist":[]}
2019-11-03T05:12:55.123Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2019-11-03T05:12:55.199Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,12,69,202,202,92,96,250,95,3,0,141,21,0,110,129,164]
2019-11-03T05:12:55.199Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,12,69,202,202,92,96,250,95,3,0,141,21,0,110,129,164]
2019-11-03T05:12:55.200Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 12 - 2 - 5 - 202 - [�\`�_�n�] - 164
2019-11-03T05:12:55.200Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - tcDeviceInd - {"nwkaddr":23754,"extaddr":"0x00158d00035ffa60","parentaddr":33134}
2019-11-03T05:12:55.202Z zigbee-herdsman:controller:log Device '0x00158d00035ffa60' joined
2019-11-03T05:12:55.202Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2019-11-03T05:12:55.203Z zigbee-herdsman:controller:log Device '0x00158d00035ffa60' accepted by handler
2019-11-03T05:12:55.203Z zigbee-herdsman:controller:log Not interviewing '0x00158d00035ffa60', completed 'true', in progress 'false'
2019-11-03T05:15:38.656Z zigbee-herdsman:controller:log Permit joining```
since 0.10.0 we can't use a symlink anymore.
This is a regression, a lot of us do use udev rules to maintain a consistent name for our serial ports.
I've looked at serialport/node-serialport#1476 and at several links from this issue;
I guess instead of counting on serialport to be able to list symlinks, it should be reasonable to see if the provided port is a symlink, follow it, and then search for the real device in SerialPort.list()
For use in the iobroker project, I would like to support nodejs starting from 6.
Therefore, I propose to rewrite the async-functions.
Need help analyzing a failed interview with the new TERNCY PP01 device.
bad_interview.log
First of all, I added a new endpoint 110 for the coordinator (in startZnp.js), as this is where some commands from the device come.
Second, I tried to add a 'checkin' command in the events.js file, but not handle. Yes, I seen not implemented issue #73
But I don’t understand why the interview is interrupted ... maybe the device did not wait for an answer to its checkin request ...
Even after such an unsuccessful interview, messages from the device come correctly. But the fact that the interview was not completed. Any ideas?
To be in sync with official zigbee standards we should allow join with time and build return intervall counter to be usable by other thirdparty.
Looks like it logs unformatted binary data:
https://github.com/Koenkk/zigbee-herdsman/blob/master/src/adapter/z-stack/unpi/parser.ts#L45
hobbyquaker/node-red-contrib-zigbee#42
// LEDVANCE
AC10691_cmdOn: {
cluster: 'genOnOff',
type: 'commandOn',
convert: (model, msg, publish, options) => {
return {action: 'on'};
},
},
AC10691_cmdOff: {
cluster: 'genOnOff',
type: 'commandOff',
convert: (model, msg, publish, options) => {
return {action: 'off'};
},
},
//
fehlt in der
fromZigbee.js
Gruß
Matten
Hello, I have noticed you started on implementation of the conbee adapter. I am from dresden elektronik and we'd like to help with the implementation. What do you think is the best way to synchronize the workflow?
We could contribute the code for the following tasks, to start with:
... in the files driver.ts and conbeeAdapter.ts.
Furthermore if you need any documentation or hardware to proceed just drop me a line. E.g. a ConBee II stick or the deCONZ serial line protocol documentation.
Note that this adapter not only work with the ConBee USB stick but also with the RaspBee Zigbee module for Raspberry Pi, because they share the same serial protocol. A more generic adapter name, like phoscon or deconz adapter, might be more fitting.
Hi. have follow aguide to install zigbee2mqtt and i try to install zigbee-herdsman
I had cloned the git and try to install with npm install inside zigbee-herdsman directoy but this error always appears.
`
pi@raspberrypi:/opt/zigbee-herdsman $ sudo npm install
npm WARN tarball tarball data for [email protected] (sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==) seems to be corrupted. Trying one more time.
npm WARN tarball tarball data for [email protected] (sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==) seems to be corrupted. Trying one more time.
npm WARN tar ENOENT: no such file or directory, open '/opt/zigbee-herdsman/node_modules/.staging/fsevents-e48a7acc/node_modules/strip-ansi/index.js'
npm WARN tar ENOENT: no such file or directory, open '/opt/zigbee-herdsman/node_modules/.staging/fsevents-e48a7acc/node_modules/strip-ansi/license'
npm WARN tar ENOENT: no such file or directory, open '/opt/zigbee-herdsman/node_modules/.staging/fsevents-e48a7acc/node_modules/strip-ansi/package.json'
npm WARN tar ENOENT: no such file or directory, open '/opt/zigbee-herdsman/node_modules/.staging/fsevents-e48a7acc/node_modules/strip-ansi/readme.md'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename '/opt/zigbee-herdsman/node_modules/.staging/fsevents-e48a7acc/node_modules/abbrev' -> '/opt/zigbee-herdsman/node_modules/.staging/abbrev-00ac77d5'
npm ERR! code EINTEGRITY
npm ERR! Verification failed while extracting [email protected]:
npm ERR! Verification failed while extracting [email protected]:
npm ERR! sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== integrity checksum failed when using sha512: wanted sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== but got sha512-5w25EOryuAGqTJle2+AoxjNQqem3oGrGAk1iUSDyhMTt5cwLgQUoj8fDBfoRf2gMdnWHMXfOaM2z+W0Qf/8Hbg==. (2296540 bytes)
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2019-09-14T20_29_24_795Z-debug.log
Tried width differents SD cards. nothing helps.
Tried to install typescript, installation went ok but not help.
Thanks.
It was mentioned here Koenkk/zigbee2mqtt#1865 (comment) that this should be at some point implmented in herdsman.
More info:
Koenkk/zigbee2mqtt#1696
zigpy/zigpy#213
After seeing first checkin
Commands by Konke Devices we should implement fully Polling Controll with all Cluster Types to be with the Standards:
Minimal example to scan/bind/read would be great.
Thanks!
Hi @Koenkk
I see this if i want to add the Konke Motion Device because it doesnt seem to add correctly.
zigbee-herdsman:unpi:parser <-- [254,23,68,129,0,0,32,0,12,100,1,1,0,2,0,190,246,101,0,0,3,25,16,0,12,100,29,202] +24s
zigbee-herdsman:unpi:parser --- parseNext [254,23,68,129,0,0,32,0,12,100,1,1,0,2,0,190,246,101,0,0,3,25,16,0,12,100,29,202] +0ms
zigbee-herdsman:unpi:parser --> parsed 23 - 2 - 4 - 129 - [
d��e
d] - 202 +1ms
zigbee-herdsman:znp:AREQ <-- AF - incomingMsg - {"groupid":0,"clusterid":32,"srcaddr":25612,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":2,"securityuse":0,"timestamp":6682302,"transseqnumber":0,"len":3,"data":{"type":"Buffer","data":[25,16,0]}} +24s
zigbee-herdsman:controller:log Received ZCL data '{"frame":{"Header":{"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":true},"transactionSequenceNumber":16,"manufacturerCode":null,"commandIdentifier":0},"Payload":{},"ClusterID":32},"networkAddress":25612,"endpoint":1,"linkquality":2,"groupID":0}' +24s
zigbee-herdsman:unpi:parser --- parseNext [] +5ms
zigbee-herdsman:controller:log Skipping command 'checkin' because it is missing from the lookup +2ms
zigbee-herdsman:unpi:parser <-- [254,28,68,129,0,0,1,2,12,100,1,1,0,0,0,58,64,102,0,0,8,24,17,10,0,0,41,138,7,12,100,29,116] +6s
zigbee-herdsman:unpi:parser --- parseNext [254,28,68,129,0,0,1,2,12,100,1,1,0,0,0,58,64,102,0,0,8,24,17,10,0,0,41,138,7,12,100,29,116] +1ms
zigbee-herdsman:unpi:parser --> parsed 28 - 2 - 4 - 129 - [
d:@f
zigbee-herdsman:unpi:parser )�
d] - 116 +1ms
It seems to be that some Encoding Problem occures ?
This issue still persists in herdsman, whats the best way to go about debugging this: Koenkk/zigbee-herdsman-converters#637
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.