Added settings removal and bug fixes

This commit is contained in:
Marius Ciotlos
2018-06-07 20:41:11 +03:00
parent 9bc87b765a
commit 7c53e9bb15
3 changed files with 21 additions and 8 deletions
+1
View File
@@ -318,6 +318,7 @@ class Controller {
logger.error(`Cannot handle '${topic}' because deviceID of '${message.toString()}' cannot be found`);
return;
}
settings.removeDevice(deviceID);
this.zigbee.removedevice(deviceID);
} else {
logger.error(`Cannot handle MQTT config option '${option}' with Payload is null - we need the friendly_name to proceed`);
+8
View File
@@ -27,9 +27,17 @@ function addDevice(id) {
writeRead();
}
function removeDevice(id) {
if (settings.devices) {
delete settings.devices[id];
writeRead();
}
}
module.exports = {
get: () => settings,
write: () => write(),
getDevice: (id) => settings.devices ? settings.devices[id] : false,
addDevice: (id) => addDevice(id),
removeDevice: (id) => removeDevice(id),
};
+12 -8
View File
@@ -109,7 +109,7 @@ class Zigbee {
}
removedevice(deviceID) {
this.shepherd.remove('deviceID', (err) => {
this.shepherd.remove(deviceID, (err) => {
if (err) {
logger.warn(`Failed to remove ${deviceID}`);
this.forceRemove(deviceID);
@@ -122,13 +122,17 @@ class Zigbee {
forceRemove(deviceID) {
const device = this.shepherd._findDevByAddr(deviceID);
// force
return this.shepherd._unregisterDev(device, (err) => {
if (err) {
logger.warn(`Failed to force remove ${deviceID}`);
} else {
logger.info(`Successfully removed by force ${deviceID}`);
}
});
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}`);
}
});
} else {
logger.warn(`Could not find ${deviceID} for force removal`);
}
}
ping(deviceID) {