mirror of
https://github.com/rstrouse/ESPSomfy-RTS.git
synced 2025-12-12 18:42:10 +01:00
84 lines
2 KiB
C++
84 lines
2 KiB
C++
#include <ArduinoJson.h>
|
|
#ifndef configsettings_h
|
|
#define configsettings_h
|
|
|
|
#define FW_VERSION "v1.03.1"
|
|
enum DeviceStatus {
|
|
DS_OK = 0,
|
|
DS_ERROR = 1,
|
|
DS_FWUPDATE = 2
|
|
};
|
|
|
|
class BaseSettings {
|
|
public:
|
|
bool loadFile(const char* filename);
|
|
bool fromJSON(JsonObject &obj);
|
|
bool toJSON(JsonObject &obj);
|
|
bool parseValueString(JsonObject &obj, const char *prop, char *dest, size_t size);
|
|
int parseValueInt(JsonObject &obj, const char *prop, int defVal);
|
|
double parseValueDouble(JsonObject &obj, const char *prop, double defVal);
|
|
bool saveFile(const char* filename);
|
|
bool save();
|
|
bool load();
|
|
};
|
|
class NTPSettings: BaseSettings {
|
|
public:
|
|
char ntpServer[64] = "pool.ntp.org";
|
|
char posixZone[64] = "";
|
|
bool fromJSON(JsonObject &obj);
|
|
bool toJSON(JsonObject &obj);
|
|
bool apply();
|
|
bool begin();
|
|
bool save();
|
|
bool load();
|
|
void print();
|
|
};
|
|
class WifiSettings: BaseSettings {
|
|
public:
|
|
WifiSettings();
|
|
char serverId[10] = "";
|
|
char hostname[32] = "";
|
|
char ssid[32] = "";
|
|
char passphrase[32] = "";
|
|
bool ssdpBroadcast = true;
|
|
bool begin();
|
|
bool fromJSON(JsonObject &obj);
|
|
bool toJSON(JsonObject &obj);
|
|
String mapEncryptionType(int type);
|
|
bool ssidExists(const char *ssid);
|
|
void printNetworks();
|
|
bool save();
|
|
bool load();
|
|
void print();
|
|
};
|
|
class MQTTSettings: BaseSettings {
|
|
public:
|
|
bool enabled = false;
|
|
char hostname[32] = "";
|
|
char protocol[10] = "mqtt://";
|
|
uint16_t port = 1883;
|
|
char username[32] = "";
|
|
char password[32] = "";
|
|
char rootTopic[64] = "";
|
|
bool begin();
|
|
bool save();
|
|
bool load();
|
|
bool toJSON(JsonObject &obj);
|
|
bool fromJSON(JsonObject &obj);
|
|
};
|
|
class ConfigSettings: BaseSettings {
|
|
public:
|
|
const char* fwVersion = FW_VERSION;
|
|
uint8_t status;
|
|
WifiSettings WIFI;
|
|
NTPSettings NTP;
|
|
MQTTSettings MQTT;
|
|
bool begin();
|
|
bool save();
|
|
bool load();
|
|
void print();
|
|
void emitSockets();
|
|
bool toJSON(DynamicJsonDocument &doc);
|
|
};
|
|
|
|
#endif
|