-
Notifications
You must be signed in to change notification settings - Fork 1
/
config.ino
85 lines (74 loc) · 2.89 KB
/
config.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// AIQ Station
// Temperature, Humidity and Pressure
// with Lolin ESP8266
//
// Written by Michele <o-zone@zerozone.it> Pinassi
// Released under GPLv3 - No any warranty
#include <ArduinoJson.h>
// ************************************
// Config, save and load functions
//
// save and load configuration from config file in SPIFFS. JSON format (need ArduinoJson library)
// ************************************
bool loadConfigFile() {
DynamicJsonBuffer jsonBuffer;
DEBUG_PRINT("[DEBUG] loadConfigFile()");
configFile = SPIFFS.open(CONFIG_FILE, "r");
if (!configFile) {
DEBUG_PRINT("[CONFIG] Config file not available");
return false;
} else {
// Get the root object in the document
JsonObject &root = jsonBuffer.parseObject(configFile);
if (!root.success()) {
DEBUG_PRINT("[CONFIG] Failed to read config file");
return false;
} else {
strlcpy(config.wifi_essid, root["wifi_essid"], sizeof(config.wifi_essid));
strlcpy(config.wifi_password, root["wifi_password"], sizeof(config.wifi_password));
strlcpy(config.hostname, root["hostname"] | "aiq-sensor", sizeof(config.hostname));
strlcpy(config.collector_host, root["collector_host"], sizeof(config.collector_host));
strlcpy(config.api_key, root["api_key"], sizeof(config.api_key));
strlcpy(config.www_username, root["www_username"] | "admin", sizeof(config.www_username));
strlcpy(config.www_password, root["www_password"] | "admin", sizeof(config.www_password));
strlcpy(config.ntp_server, root["ntp_server"] | "time.ien.it", sizeof(config.ntp_server));
config.ntp_timezone = root["ntp_timezone"] | 1;
strlcpy(config.syslog_server, root["syslog_server"] | "", sizeof(config.syslog_server));
config.syslog_port = root["syslog_port"] | 514;
DEBUG_PRINT("[INIT] Configuration loaded");
}
}
configFile.close();
return true;
}
bool saveConfigFile() {
DynamicJsonBuffer jsonBuffer;
DEBUG_PRINT("[DEBUG] saveConfigFile()");
// Parse the root object
JsonObject &root = jsonBuffer.createObject();
root["wifi_essid"] = config.wifi_essid;
root["wifi_password"] = config.wifi_password;
root["hostname"] = config.hostname;
root["collector_host"] = config.collector_host;
root["api_key"] = config.api_key;
root["www_username"] = config.www_username;
root["www_password"] = config.www_password;
root["ntp_server"] = config.ntp_server;
root["ntp_timezone"] = config.ntp_timezone;
root["syslog_server"] = config.syslog_server;
root["syslog_port"] = config.syslog_port;
configFile = SPIFFS.open(CONFIG_FILE, "w");
if(!configFile) {
DEBUG_PRINT("[CONFIG] Failed to create config file !");
return false;
}
if (root.printTo(configFile) == 0) {
DEBUG_PRINT("[CONFIG] Failed to save config file !");
} else {
#ifdef __DEBUG__
DEBUG_PRINT("[CONFIG] Configuration saved !");
#endif
}
configFile.close();
return true;
}