diff --git a/libnymea-core/jsonrpc/jsonrpcserverimplementation.cpp b/libnymea-core/jsonrpc/jsonrpcserverimplementation.cpp index 33671c20..b613f9ab 100644 --- a/libnymea-core/jsonrpc/jsonrpcserverimplementation.cpp +++ b/libnymea-core/jsonrpc/jsonrpcserverimplementation.cpp @@ -73,6 +73,7 @@ #include "tagshandler.h" #include "systemhandler.h" #include "usershandler.h" +#include "zigbeehandler.h" #include #include @@ -595,6 +596,7 @@ void JsonRPCServerImplementation::setup() registerHandler(new TagsHandler(this)); registerHandler(new SystemHandler(NymeaCore::instance()->platform(), this)); registerHandler(new UsersHandler(NymeaCore::instance()->userManager(), this)); + registerHandler(new ZigbeeHandler(NymeaCore::instance()->zigbeeManager(), this)); connect(NymeaCore::instance()->cloudManager(), &CloudManager::pairingReply, this, &JsonRPCServerImplementation::pairingFinished); connect(NymeaCore::instance()->cloudManager(), &CloudManager::connectionStateChanged, this, &JsonRPCServerImplementation::onCloudConnectionStateChanged); diff --git a/libnymea-core/jsonrpc/zigbeehandler.cpp b/libnymea-core/jsonrpc/zigbeehandler.cpp index 8a6ab354..9f4091ef 100644 --- a/libnymea-core/jsonrpc/zigbeehandler.cpp +++ b/libnymea-core/jsonrpc/zigbeehandler.cpp @@ -37,11 +37,8 @@ ZigbeeHandler::ZigbeeHandler(ZigbeeManager *zigbeeManager, QObject *parent) : JsonHandler(parent), m_zigbeeManager(zigbeeManager) { - registerEnum(); - registerEnum(); - -// registerObject(); -// registerObject(); + registerEnum(); + registerEnum(); QVariantMap params, returns; QString description; @@ -60,13 +57,13 @@ ZigbeeHandler::ZigbeeHandler(ZigbeeManager *zigbeeManager, QObject *parent) : returns.insert("configured", enumValueName(Bool)); returns.insert("serialPort", enumValueName(String)); returns.insert("baudRate", enumValueName(Uint)); - returns.insert("backend", enumRef()); + returns.insert("backend", enumRef()); returns.insert("firmwareVersion", enumValueName(String)); returns.insert("networkIeeeeAddress", enumValueName(String)); returns.insert("networkPanId", enumValueName(Uint)); returns.insert("channel", enumValueName(Uint)); returns.insert("permitJoin", enumValueName(Bool)); - returns.insert("networkState", enumRef()); + returns.insert("networkState", enumRef()); registerMethod("GetNetworkStatus", description, params, returns); // GetUartInterfaces diff --git a/libnymea-core/zigbee/zigbeemanager.cpp b/libnymea-core/zigbee/zigbeemanager.cpp index 1900c057..645d4bae 100644 --- a/libnymea-core/zigbee/zigbeemanager.cpp +++ b/libnymea-core/zigbee/zigbeemanager.cpp @@ -59,7 +59,7 @@ ZigbeeNetwork *ZigbeeManager::zigbeeNetwork() const return m_zigbeeNetwork; } -void ZigbeeManager::createZigbeeNetwork(const QString &serialPort, qint32 baudrate, Zigbee::BackendType backend) +void ZigbeeManager::createZigbeeNetwork(const QString &serialPort, qint32 baudrate, Zigbee::ZigbeeBackendType backend) { if (m_zigbeeNetwork) { delete m_zigbeeNetwork; diff --git a/libnymea-core/zigbee/zigbeemanager.h b/libnymea-core/zigbee/zigbeemanager.h index dced5f3f..0ca56680 100644 --- a/libnymea-core/zigbee/zigbeemanager.h +++ b/libnymea-core/zigbee/zigbeemanager.h @@ -41,6 +41,14 @@ class ZigbeeManager : public QObject { Q_OBJECT public: + enum ZigbeeNetworkState { + ZigbeeNetworkStateOffline, + ZigbeeNetworkStateUpdating, + ZigbeeNetworkStateOnline, + ZigbeeNetworkStateError + }; + Q_ENUM(ZigbeeNetworkState) + explicit ZigbeeManager(QObject *parent = nullptr); bool available() const; @@ -48,7 +56,7 @@ public: ZigbeeNetwork *zigbeeNetwork() const; - void createZigbeeNetwork(const QString &serialPort, qint32 baudrate, Zigbee::BackendType backend); + void createZigbeeNetwork(const QString &serialPort, qint32 baudrate, Zigbee::ZigbeeBackendType backend); private: ZigbeeNetwork *m_zigbeeNetwork = nullptr;