diff --git a/lib/zigbee.js b/lib/zigbee.js index 6a813ebb..d8c2ec58 100644 --- a/lib/zigbee.js +++ b/lib/zigbee.js @@ -191,15 +191,27 @@ class Zigbee { } logger.info(`Zigbee publish to '${deviceID}', ${cid} - ${cmd} - ${JSON.stringify(zclData)} - ${ep}`); - device.functional(cid, cmd, zclData, (error) => { + if(zclData['foudation']!==true){ + device.functional(cid, cmd, zclData, (error) => { if (error) { + logger.error( + `Zigbee publish to '${deviceID}', ${cid} - ${cmd} - ${JSON.stringify(zclData)} - ${ep} ` + + `failed with error ${error}`); + } + + callback(error); + }); + }else{ // use foundation command + device.foundation(cid, cmd, [{ attrId: zclData['attrId'], dataType:zclData['dataType'], attrData:zclData['attrData'] }, ], function (error, rsp) { + if (error){ logger.error( - `Zigbee publish to '${deviceID}', ${cid} - ${cmd} - ${JSON.stringify(zclData)} - ${ep} ` + - `failed with error ${error}`); + `Zigbee publish to '${deviceID}', ${cid} - ${cmd} - ${JSON.stringify(zclData)} - ${ep} ` + + `failed with error ${error}, respond ${rsp}`); + } + callback(error); + }); } - callback(error); - }); } read(deviceID, cid, attr, ep, callback) {