From f9e030861868ac8589243ac8a5feca8534dc2742 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Fri, 27 Mar 2020 13:48:18 +0100 Subject: [PATCH] Reenable default response --- .../nxp/zigbeebridgecontrollernxp.cpp | 13 +++++++------ libnymea-zigbee/nxp/zigbeenodeendpointnxp.cpp | 16 ++++++++++++++++ libnymea-zigbee/zigbeenodeendpoint.cpp | 5 ++++- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/libnymea-zigbee/nxp/zigbeebridgecontrollernxp.cpp b/libnymea-zigbee/nxp/zigbeebridgecontrollernxp.cpp index 38c4a2d..5d232dc 100644 --- a/libnymea-zigbee/nxp/zigbeebridgecontrollernxp.cpp +++ b/libnymea-zigbee/nxp/zigbeebridgecontrollernxp.cpp @@ -555,6 +555,7 @@ ZigbeeInterfaceReply *ZigbeeBridgeControllerNxp::commandOnOffNoEffects(quint8 ad stream << static_cast(command); ZigbeeInterfaceRequest request(ZigbeeInterfaceMessage(Zigbee::MessageTypeCluserOnOff, data)); + request.setExpectedAdditionalMessageType(Zigbee::InterfaceMessageType::MessageTypeDefaultResponse); request.setDescription("Send on/off cluster command"); request.setTimoutIntervall(5000); @@ -592,7 +593,7 @@ ZigbeeInterfaceReply *ZigbeeBridgeControllerNxp::commandMoveToLevel(quint8 addre stream << transitionTime; ZigbeeInterfaceRequest request(ZigbeeInterfaceMessage(Zigbee::MessageTypeMoveToLevelOnOff, data)); - //request.setExpectedAdditionalMessageType(Zigbee::MessageTypeDefaultResponse); + request.setExpectedAdditionalMessageType(Zigbee::MessageTypeDefaultResponse); request.setDescription(QString("Move to level on/off %1").arg(level)); request.setTimoutIntervall(5000); @@ -611,7 +612,7 @@ ZigbeeInterfaceReply *ZigbeeBridgeControllerNxp::commandMoveToColourTemperature( stream << transitionTime; ZigbeeInterfaceRequest request(ZigbeeInterfaceMessage(Zigbee::MessageTypeMoveToColorTemperature, data)); - //request.setExpectedAdditionalMessageType(Zigbee::MessageTypeDefaultResponse); + request.setExpectedAdditionalMessageType(Zigbee::MessageTypeDefaultResponse); request.setDescription(QString("Move to colour temperature %1").arg(colourTemperature)); request.setTimoutIntervall(5000); @@ -630,7 +631,7 @@ ZigbeeInterfaceReply *ZigbeeBridgeControllerNxp::commandMoveToColor(quint8 addre stream << transitionTime; ZigbeeInterfaceRequest request(ZigbeeInterfaceMessage(Zigbee::MessageTypeMoveToColor, data)); - //request.setExpectedAdditionalMessageType(Zigbee::MessageTypeDefaultResponse); + request.setExpectedAdditionalMessageType(Zigbee::MessageTypeDefaultResponse); request.setDescription(QString("Move to colour %1, %2").arg(x).arg(y)); request.setTimoutIntervall(5000); @@ -649,7 +650,7 @@ ZigbeeInterfaceReply *ZigbeeBridgeControllerNxp::commandMoveToHueSaturation(quin stream << transitionTime; ZigbeeInterfaceRequest request(ZigbeeInterfaceMessage(Zigbee::MessageTypeMoveToHueSaturation, data)); - //request.setExpectedAdditionalMessageType(Zigbee::MessageTypeDefaultResponse); + request.setExpectedAdditionalMessageType(Zigbee::MessageTypeDefaultResponse); request.setDescription(QString("Move to hue %1 saturation %2").arg(hue).arg(saturation)); request.setTimoutIntervall(5000); @@ -668,7 +669,7 @@ ZigbeeInterfaceReply *ZigbeeBridgeControllerNxp::commandMoveToHue(quint8 address stream << transitionTime; ZigbeeInterfaceRequest request(ZigbeeInterfaceMessage(Zigbee::MessageTypeMoveToHue, data)); - //request.setExpectedAdditionalMessageType(Zigbee::MessageTypeDefaultResponse); + request.setExpectedAdditionalMessageType(Zigbee::MessageTypeDefaultResponse); request.setDescription(QString("Move to hue %1").arg(hue)); request.setTimoutIntervall(5000); @@ -687,7 +688,7 @@ ZigbeeInterfaceReply *ZigbeeBridgeControllerNxp::commandMoveToSaturation(quint8 stream << transitionTime; ZigbeeInterfaceRequest request(ZigbeeInterfaceMessage(Zigbee::MessageTypeMoveToSaturation, data)); - //request.setExpectedAdditionalMessageType(Zigbee::MessageTypeDefaultResponse); + request.setExpectedAdditionalMessageType(Zigbee::MessageTypeDefaultResponse); request.setDescription(QString("Move to saturation %1").arg(saturation)); request.setTimoutIntervall(5000); diff --git a/libnymea-zigbee/nxp/zigbeenodeendpointnxp.cpp b/libnymea-zigbee/nxp/zigbeenodeendpointnxp.cpp index 130bfa3..48ba280 100644 --- a/libnymea-zigbee/nxp/zigbeenodeendpointnxp.cpp +++ b/libnymea-zigbee/nxp/zigbeenodeendpointnxp.cpp @@ -84,6 +84,8 @@ ZigbeeNetworkReply *ZigbeeNodeEndpointNxp::configureReporting(ZigbeeCluster *clu return; } + // Fixme: read configure response + qCDebug(dcZigbeeController()) << reply->request().description() << "finished successfully"; finishNetworkReply(networkReply); }); @@ -126,6 +128,8 @@ ZigbeeNetworkReply *ZigbeeNodeEndpointNxp::factoryReset() return; } + // Fixme: read default response + qCDebug(dcZigbeeController()) << reply->request().description() << "finished successfully"; finishNetworkReply(networkReply); }); @@ -234,6 +238,8 @@ ZigbeeNetworkReply *ZigbeeNodeEndpointNxp::sendLevelCommand(ZigbeeCluster::Level return; } + // Fixme: read default response + qCDebug(dcZigbeeController()) << reply->request().description() << "finished successfully"; finishNetworkReply(networkReply); }); @@ -255,6 +261,8 @@ ZigbeeNetworkReply *ZigbeeNodeEndpointNxp::sendMoveToColorTemperature(quint16 co return; } + // Fixme: read default response + qCDebug(dcZigbeeController()) << reply->request().description() << "finished successfully"; finishNetworkReply(networkReply); }); @@ -280,6 +288,8 @@ ZigbeeNetworkReply *ZigbeeNodeEndpointNxp::sendMoveToColor(double x, double y, q return; } + // Fixme: read default response + qCDebug(dcZigbeeController()) << reply->request().description() << "finished successfully"; finishNetworkReply(networkReply); }); @@ -301,6 +311,8 @@ ZigbeeNetworkReply *ZigbeeNodeEndpointNxp::sendMoveToHueSaturation(quint8 hue, q return; } + // Fixme: read default response + qCDebug(dcZigbeeController()) << reply->request().description() << "finished successfully"; finishNetworkReply(networkReply); }); @@ -322,6 +334,8 @@ ZigbeeNetworkReply *ZigbeeNodeEndpointNxp::sendMoveToHue(quint8 hue, quint16 tra return; } + // Fixme: read default response + qCDebug(dcZigbeeController()) << reply->request().description() << "finished successfully"; finishNetworkReply(networkReply); }); @@ -343,6 +357,8 @@ ZigbeeNetworkReply *ZigbeeNodeEndpointNxp::sendMoveToSaturation(quint8 saturatio return; } + // Fixme: read default response + qCDebug(dcZigbeeController()) << reply->request().description() << "finished successfully"; finishNetworkReply(networkReply); }); diff --git a/libnymea-zigbee/zigbeenodeendpoint.cpp b/libnymea-zigbee/zigbeenodeendpoint.cpp index e0dd517..9c4d43f 100644 --- a/libnymea-zigbee/zigbeenodeendpoint.cpp +++ b/libnymea-zigbee/zigbeenodeendpoint.cpp @@ -157,7 +157,10 @@ void ZigbeeNodeEndpoint::addOutputCluster(ZigbeeCluster *cluster) ZigbeeNetworkReply *ZigbeeNodeEndpoint::createNetworkReply() { - return new ZigbeeNetworkReply(this); + ZigbeeNetworkReply *reply = new ZigbeeNetworkReply(this); + // Make sure the reply will be deleted + connect(reply, &ZigbeeNetworkReply::finished, reply, &ZigbeeNetworkReply::deleteLater); + return reply; } void ZigbeeNodeEndpoint::finishNetworkReply(ZigbeeNetworkReply *reply, ZigbeeNetworkReply::Error error, Zigbee::ZigbeeStatus zigbeeStatus)