mirror of
https://github.com/Koenkk/zigbee2mqtt.git
synced 2026-08-27 21:20:03 +00:00
Added settings removal and bug fixes
This commit is contained in:
@@ -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`);
|
||||
|
||||
@@ -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
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user