diff --git a/owlet/integrationpluginowlet.cpp b/owlet/integrationpluginowlet.cpp index 7fc059fb..db30ac4c 100644 --- a/owlet/integrationpluginowlet.cpp +++ b/owlet/integrationpluginowlet.cpp @@ -163,6 +163,9 @@ void IntegrationPluginOwlet::setupThing(ThingSetupInfo *info) if (params.contains("color")) { thing->setStateValue(ws2812ColorStateTypeId, params.value("color").value()); } + if (params.contains("effect")) { + thing->setStateValue(ws2812EffectStateTypeId, params.value("effect").toInt()); + } } } }); @@ -212,6 +215,10 @@ void IntegrationPluginOwlet::executeAction(ThingActionInfo *info) QColor color = info->action().paramValue(ws2812ColorActionColorParamTypeId).value(); params.insert("color", (color.rgb() & 0xFFFFFF)); } + if (info->action().actionTypeId() == ws2812EffectActionTypeId) { + int effect = info->action().paramValue(ws2812EffectActionEffectParamTypeId).toInt(); + params.insert("effect", effect); + } int id = client->sendCommand("GPIO.ControlPin", params); connect(client, &OwletClient::replyReceived, info, [=](int commandId, const QVariantMap ¶ms){ @@ -229,6 +236,8 @@ void IntegrationPluginOwlet::executeAction(ThingActionInfo *info) return; } + + Q_ASSERT_X(false, "IntegrationPluginOwlet", "Not implemented"); info->finish(Thing::ThingErrorUnsupportedFeature); } diff --git a/owlet/integrationpluginowlet.json b/owlet/integrationpluginowlet.json index 71b811aa..7fef3d74 100644 --- a/owlet/integrationpluginowlet.json +++ b/owlet/integrationpluginowlet.json @@ -207,6 +207,16 @@ "maxValue": 100, "defaultValue": 50, "writable": true + }, + { + "id": "cb90f7bf-bcb0-42e8-a03b-442d84c5871f", + "name": "effect", + "displayName": "Effect", + "displayNameEvent": "Effect changed", + "displayNameAction": "Set effect", + "type": "int", + "defaultValue": 0, + "writable": true } ] }