From 9a5832a2ee82a29210801106dfae9754c03eb98b Mon Sep 17 00:00:00 2001 From: Marcel Date: Fri, 30 Oct 2020 07:24:20 +0100 Subject: [PATCH] [miio] Fix handling commands with curly brackets (#8897) Signed-off-by: Marcel Verpaalen --- .../miio/internal/handler/MiIoAbstractHandler.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoAbstractHandler.java b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoAbstractHandler.java index 06163a397..0edcd422c 100644 --- a/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoAbstractHandler.java +++ b/bundles/org.openhab.binding.miio/src/main/java/org/openhab/binding/miio/internal/handler/MiIoAbstractHandler.java @@ -209,9 +209,11 @@ public abstract class MiIoAbstractHandler extends BaseThingHandler implements Mi try { String command = commandString.trim(); String param = "[]"; - int loc = command.indexOf("["); - loc = (loc > 0 ? loc : command.indexOf("{")); - if (loc > 0) { + int sb = command.indexOf("["); + int cb = command.indexOf("{"); + logger.debug("locs {}, {}", sb, cb); + if (Math.max(sb, cb) > 0) { + int loc = (Math.min(sb, cb) > 0 ? Math.min(sb, cb) : Math.max(sb, cb)); param = command.substring(loc).trim(); command = command.substring(0, loc).trim(); }