Refactor remove device & remove from home assistant

This commit is contained in:
Koenkk committed 2018-06-09 12:33:40 +02:00
1 parent 7c53e9bb15
commit 884e3aa475
4 files changed
+66 -33

No files matched your search

+10 -15
View File
@@ -108,30 +108,25 @@ class Zigbee {
return this.shepherd.list().filter((device) => device.type !== 'Coordinator');
}
removedevice(deviceID) {
this.shepherd.remove(deviceID, (err) => {
if (err) {
logger.warn(`Failed to remove ${deviceID}`);
this.forceRemove(deviceID);
removeDevice(deviceID, callback) {
this.shepherd.remove(deviceID, (error) => {
if (error) {
logger.warn(`Failed to remove '${deviceID}', trying force remove...`);
this._forceRemove(deviceID, callback);
} else {
logger.info(`Successfully removed ${deviceID}`);
callback(null);
}
});
}
forceRemove(deviceID) {
_forceRemove(deviceID, callback) {
const device = this.shepherd._findDevByAddr(deviceID);
// force
if (device) {
return this.shepherd._unregisterDev(device, (err) => {
if (err) {
logger.warn(`Failed to force remove ${deviceID}`);
} else {
logger.info(`Successfully removed by force ${deviceID}`);
}
});
return this.shepherd._unregisterDev(device, (error) => callback(error));
} else {
logger.warn(`Could not find ${deviceID} for force removal`);
callback(true);
}
}