Skip to content

Commit 4ca6a40

Browse files
committed
feat: now you can leave blank the "wifi" and "password" (or only "password") fields in config.json
1 parent fc0206e commit 4ca6a40

File tree

1 file changed

+38
-5
lines changed

1 file changed

+38
-5
lines changed

lib/Set_NTP_Time/Set_NTP_Time.cpp

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,49 @@ void set_NTP_time() {
1717
WiFi.mode(WIFI_STA);
1818
uint8_t n_net = WiFi.scanNetworks();
1919

20-
WiFi.begin(conf.wifi.SSID, conf.wifi.PASSWORD);
21-
Serial.printf("Connecting to %s ", conf.wifi.SSID);
20+
char ssid[256];
21+
strlcpy(ssid, conf.wifi.SSID, sizeof(ssid));
22+
23+
if(strcmp(conf.wifi.SSID, "") == 0) {
24+
bool open_ap_found = false;
25+
26+
if (n_net) {
27+
Serial.println("Network found!\n");
28+
for (uint8_t i = 0; i < n_net; ++i)
29+
if(WiFi.encryptionType(i) == WIFI_AUTH_OPEN) {
30+
strlcpy(ssid, WiFi.SSID(i).c_str(), sizeof(ssid));
31+
open_ap_found = true;
32+
break;
33+
}
34+
}
35+
else
36+
Serial.println("No network found.\n");
37+
38+
if(open_ap_found) {
39+
WiFi.begin(ssid);
40+
Serial.printf("Connecting to %s ", ssid);
41+
}
42+
else {
43+
Serial.println("No open network found.\n");
44+
return;
45+
}
46+
}
47+
else if((strcmp(conf.wifi.SSID, "") != 0) && (strcmp(conf.wifi.PASSWORD, "") == 0)) {
48+
WiFi.begin(conf.wifi.SSID);
49+
Serial.printf("Connecting to %s ", conf.wifi.SSID);
50+
}
51+
else {
52+
WiFi.begin(conf.wifi.SSID, conf.wifi.PASSWORD);
53+
Serial.printf("Connecting to %s ", conf.wifi.SSID);
54+
}
2255

2356
while(WiFi.status() != WL_CONNECTED && WiFi.status() != WL_CONNECT_FAILED)
2457
delay(100);
2558

2659
if(WiFi.status() == WL_CONNECT_FAILED)
27-
Serial.printf("\nError connecting to %s.\n", conf.wifi.SSID);
60+
Serial.printf("\nError connecting to %s.\n", ssid);
2861

29-
Serial.printf("\nConnected to %s.\n", conf.wifi.SSID);
62+
Serial.printf("\nConnected to %s.\n", ssid);
3063

3164
timeClient.begin();
3265
delay(50);
@@ -35,7 +68,7 @@ void set_NTP_time() {
3568

3669
if(timeClient.isTimeSet()) {
3770
rtc.adjust(timeClient.getEpochTime());
38-
Serial.printf("RTC adjusted with NTP time.\nDisconnecting from %s.\n", conf.wifi.SSID);
71+
Serial.printf("RTC adjusted with NTP time.\nDisconnecting from %s.\n", ssid);
3972
}
4073
else {
4174
Serial.printf("NTP server error. Time not set.\n");

0 commit comments

Comments
 (0)