diff --git a/lib/controller.js b/lib/controller.js index fc914993a1..78443f6a8e 100644 --- a/lib/controller.js +++ b/lib/controller.js @@ -10,8 +10,7 @@ const objectAssignDeep = require(`object-assign-deep`); const mqttConfigRegex = new RegExp(`${settings.get().mqtt.base_topic}/bridge/config/\\w+`, 'g'); const mqttDeviceRegex = new RegExp(`${settings.get().mqtt.base_topic}/[\\w\\s\\d.-]+/set`, 'g'); -const mqttDevicePrefixRegex = new RegExp(`${settings.get().mqtt.base_topic}/[\\w\\s\\d.-] - +/[\\w\\s\\d.-]+/set`, 'g'); +const mqttDevicePrefixRegex = new RegExp(`${settings.get().mqtt.base_topic}/[\\w\\s\\d.-]+/[\\w\\s\\d.-]+/set`, 'g'); const pollInterval = 60 * 1000; // seconds * 1000. const softResetTimeout = 3600 * 1000; // seconds * 1000. @@ -479,7 +478,7 @@ class Controller { } handleMQTTMessageDevice(topic, message, withPrefix) { - const friendlyName = topic.split('/').slice(-2)[0]; + const friendlyName = topic.split('/').slice(withPrefix ? -3 : -2)[0]; const topicPrefix = withPrefix ? topic.split('/').slice(-3)[0] : ''; // Map friendlyName to deviceID.