Update zigbee-shepherd-converters to 1.0.1. #36 #62

This commit is contained in:
Koenkk committed 2018-06-04 21:36:51 +02:00
1 parent eae8a80588
commit a976c1db93
3 files changed
+17 -23

No files matched your search

+9 -3
View File
@@ -42,7 +42,7 @@ class Controller {
if (error) {
logger.error('Failed to start');
} else {
// Log zigbee clients on startup.
// Log zigbee clients on startup and configure.
const devices = this.zigbee.getAllClients();
logger.info(`Currently ${devices.length} devices are joined:`);
devices.forEach((device) => {
@@ -145,8 +145,14 @@ class Controller {
if (ieeeAddr && device.modelId && !this.configuredReport.includes(ieeeAddr)) {
const mappedModel = zigbeeShepherdConverters.findByZigbeeModel(device.modelId);
if (mappedModel && mappedModel.report) {
this.zigbee.configureReport(ieeeAddr, mappedModel.report);
if (mappedModel && mappedModel.configure) {
mappedModel.configure(ieeeAddr, this.zigbee.shepherd, this.zigbee.getCoordinator(), (ok, msg) => {
if (ok) {
logger.info(`Succesfully configured ${ieeeAddr}`);
} else {
logger.error(`Failed to configure ${ieeeAddr}`);
}
});
}
this.configuredReport.push(ieeeAddr);
+5 -17
View File
@@ -124,27 +124,15 @@ class Zigbee {
}
}
configureReport(ieeeAddr, reports) {
reports.forEach((r) => {
const device = this.shepherd.find(ieeeAddr, r.ep);
if (device) {
device.report(r.cid, r.attr, r.minInt, r.maxInt, r.repChange, (error) => {
if (error) {
logger.warn(`Failed to configure reporting for ${ieeeAddr} ${r.cid} ${r.attr}`);
} else {
logger.info(`Configured reporting for ${ieeeAddr} ${r.cid} ${r.attr}`);
}
});
} else {
logger.warn(`Failed to configure reporting for ${ieeeAddr} ${r.cid} ${r.attr} (device not found)`);
}
});
}
getDevice(deviceID) {
return this.shepherd.list().find((d) => d.ieeeAddr === deviceID);
}
getCoordinator() {
const device = this.shepherd.list().find((d) => d.type === 'Coordinator');
return this.shepherd.find(device.ieeeAddr, 1);
}
publish(deviceID, cid, cmd, zclData, ep, callback) {
const device = this._findDevice(deviceID, ep);
if (!device) {