72 lines
2.4 KiB
C++
72 lines
2.4 KiB
C++
#pragma once
|
|
|
|
#ifndef NUKI_HUB_UPDATER
|
|
#include "espMqttClient.h"
|
|
#include "MqttClientSetup.h"
|
|
#endif
|
|
#include "IPConfiguration.h"
|
|
#include "../EspMillis.h"
|
|
|
|
class NetworkDevice
|
|
{
|
|
public:
|
|
explicit NetworkDevice(const String& hostname, Preferences* preferences, const IPConfiguration* ipConfiguration)
|
|
: _hostname(hostname),
|
|
_preferences(preferences),
|
|
_ipConfiguration(ipConfiguration)
|
|
{}
|
|
|
|
virtual const String deviceName() const = 0;
|
|
|
|
virtual void initialize() = 0;
|
|
virtual void reconfigure() = 0;
|
|
|
|
virtual void update();
|
|
virtual void scan(bool passive = false, bool async = true) = 0;
|
|
virtual bool isConnected() = 0;
|
|
virtual bool isApOpen() = 0;
|
|
virtual int8_t signalStrength() = 0;
|
|
|
|
virtual String localIP() = 0;
|
|
virtual String BSSIDstr() = 0;
|
|
|
|
#ifndef NUKI_HUB_UPDATER
|
|
virtual void mqttSetClientId(const char* clientId);
|
|
virtual void mqttSetCleanSession(bool cleanSession);
|
|
virtual void mqttSetKeepAlive(uint16_t keepAlive);
|
|
virtual uint16_t mqttPublish(const char* topic, uint8_t qos, bool retain, const char* payload);
|
|
virtual uint16_t mqttPublish(const char* topic, uint8_t qos, bool retain, const uint8_t* payload, size_t length);
|
|
virtual bool mqttConnected() const;
|
|
virtual void mqttSetServer(const char* host, uint16_t port);
|
|
virtual bool mqttConnect();
|
|
virtual bool mqttDisconnect(bool force);
|
|
virtual void setWill(const char* topic, uint8_t qos, bool retain, const char* payload);
|
|
virtual void mqttSetCredentials(const char* username, const char* password);
|
|
virtual void mqttOnMessage(espMqttClientTypes::OnMessageCallback callback);
|
|
virtual void mqttOnConnect(espMqttClientTypes::OnConnectCallback callback);
|
|
virtual void mqttOnDisconnect(espMqttClientTypes::OnDisconnectCallback callback);
|
|
virtual void disableMqtt();
|
|
|
|
virtual uint16_t mqttSubscribe(const char* topic, uint8_t qos);
|
|
#endif
|
|
|
|
protected:
|
|
#ifndef NUKI_HUB_UPDATER
|
|
espMqttClient *_mqttClient = nullptr;
|
|
espMqttClientSecure *_mqttClientSecure = nullptr;
|
|
|
|
bool _useEncryption = false;
|
|
bool _mqttEnabled = true;
|
|
|
|
void init();
|
|
|
|
MqttClient *getMqttClient() const;
|
|
|
|
char _ca[TLS_CA_MAX_SIZE] = {0};
|
|
char _cert[TLS_CERT_MAX_SIZE] = {0};
|
|
char _key[TLS_KEY_MAX_SIZE] = {0};
|
|
#endif
|
|
|
|
const String _hostname;
|
|
const IPConfiguration* _ipConfiguration = nullptr;
|
|
}; |