From 6262b0a27b63404d854a614c18d7354a5885d421 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Tue, 16 Mar 2021 18:33:24 +0100 Subject: [PATCH] Fix thing discovery params --- libnymea-app/thingdiscovery.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libnymea-app/thingdiscovery.cpp b/libnymea-app/thingdiscovery.cpp index cc4a2578..858180e4 100644 --- a/libnymea-app/thingdiscovery.cpp +++ b/libnymea-app/thingdiscovery.cpp @@ -142,7 +142,14 @@ void ThingDiscovery::discoverThingsResponse(int /*commandId*/, const QVariantMap descriptorVariant.toMap().value("thingId").toString(), descriptorVariant.toMap().value("title").toString(), descriptorVariant.toMap().value("description").toString()); - foreach (const QVariant ¶mVariant, descriptorVariant.toMap().value("thingParams").toList()) { + // Work around a bug in nymea:core which didn't properly update deviceParams in the device->things transition + QVariantList paramList; + if (descriptorVariant.toMap().contains("params")) { + paramList = descriptorVariant.toMap().value("params").toList(); + } else { + paramList = descriptorVariant.toMap().value("deviceParams").toList(); + } + foreach (const QVariant ¶mVariant, paramList) { qDebug() << "Adding param:" << paramVariant.toMap().value("paramTypeId").toString() << paramVariant.toMap().value("value"); Param* p = new Param(paramVariant.toMap().value("paramTypeId").toString(), paramVariant.toMap().value("value")); descriptor->params()->addParam(p);