diff --git a/libnymea-core/hardware/zigbee/zigbeehardwareresourceimplementation.cpp b/libnymea-core/hardware/zigbee/zigbeehardwareresourceimplementation.cpp index cab84283..a6f9dcb0 100644 --- a/libnymea-core/hardware/zigbee/zigbeehardwareresourceimplementation.cpp +++ b/libnymea-core/hardware/zigbee/zigbeehardwareresourceimplementation.cpp @@ -161,6 +161,11 @@ void ZigbeeHardwareResourceImplementation::onZigbeeNodeAdded(const QUuid &networ void ZigbeeHardwareResourceImplementation::onZigbeeNodeRemoved(const QUuid &networkUuid, ZigbeeNode *node) { qCDebug(dcZigbeeResource()) << node << "left the network" << m_zigbeeManager->zigbeeNetworks().value(networkUuid); + + foreach (ZigbeeHandler *tmp, m_handlers) { + tmp->handleRemoveNode(node, networkUuid); + } + } } diff --git a/libnymea-core/zigbee/zigbeemanager.cpp b/libnymea-core/zigbee/zigbeemanager.cpp index c53fdd20..d3345421 100644 --- a/libnymea-core/zigbee/zigbeemanager.cpp +++ b/libnymea-core/zigbee/zigbeemanager.cpp @@ -393,6 +393,7 @@ void ZigbeeManager::addNetwork(ZigbeeNetwork *network) // ZigbeeNodeInitializer *nodeInitializer = m_zigbeeNodeInitializers.value(network->networkUuid()); // nodeInitializer->initializeNode(node); // TODO: emit node added once initialized so the plugins can use it + emit nodeAdded(network->networkUuid(), node); }); diff --git a/libnymea/hardware/zigbee/zigbeehandler.h b/libnymea/hardware/zigbee/zigbeehandler.h index f346e6ad..dba0d794 100644 --- a/libnymea/hardware/zigbee/zigbeehandler.h +++ b/libnymea/hardware/zigbee/zigbeehandler.h @@ -2,8 +2,9 @@ #define ZIGBEEHANDLER_H #include "zigbeenode.h" +#include "libnymea.h" -class ZigbeeHandler +class LIBNYMEA_EXPORT ZigbeeHandler { public: ZigbeeHandler(); @@ -11,6 +12,7 @@ public: virtual QString name() const = 0; virtual bool handleNode(ZigbeeNode *node, const QUuid &networkUuid) = 0; + virtual void handleRemoveNode(ZigbeeNode *node, const QUuid &networkUuid) = 0; }; #endif // ZIGBEEHANDLER_H