diff --git a/lib/controller.js b/lib/controller.js index 9252c4965..c382226cb 100644 --- a/lib/controller.js +++ b/lib/controller.js @@ -367,7 +367,7 @@ class Controller { } handleMQTTMessageConfig(topic, message) { - const option = topic.split('/')[3]; + const option = topic.split('/').slice(-1)[0]; if (option === 'permit_join') { this.zigbee.permitJoin(message.toString().toLowerCase() === 'true'); @@ -471,8 +471,8 @@ class Controller { } handleMQTTMessageDevice(topic, message, withPrefix) { - const friendlyName = topic.split('/')[1]; - const topicPrefix = withPrefix ? topic.split('/')[2] : ''; + const friendlyName = topic.split('/').slice(-2)[0]; + const topicPrefix = withPrefix ? topic.split('/').slice(-3)[0] : ''; // Map friendlyName to deviceID. const deviceID = settings.getIDByFriendlyName(friendlyName);