-
Notifications
You must be signed in to change notification settings - Fork 40
/
Copy pathUpgrade.ino
66 lines (66 loc) · 2.85 KB
/
Upgrade.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
void initUpgrade() {
// Добавляем функцию Update для перезаписи прошивки по Wi-Fi при 1М(256K SPIFFS) и выше
httpUpdater.setup(&HTTP);
HTTP.on("/upgrade", webUpgrade); // запустить обновление
modulesReg("upgrade");
}
// ----------------------- Обновление с сайта
void webUpgrade() {
String refresh = "<html><head><link rel=\"stylesheet\" type=\"text/css\" href=\"./css/build.css\"></head><body><br><br><center><div class=\"loader\"></div><h1>Update module... <br><span id=\"countdownt\">90 </span> seconds...</h1></center> <script>var timeleft=90;var downloadTimer=setInterval(function(){timeleft--;document.getElementById(\"countdownt\").textContent=timeleft;if(timeleft <= 0){clearInterval(downloadTimer);window.location.href=\"/\"}},1000);</script></body></html>";
httpOkHtml(refresh);
//httpOkJson(refresh);
String Timerset = readFile(configTimerS, 4096);
String spiffsData = HTTP.arg(spiffsS);
if (spiffsData != emptyS) {
spiffsData = spiffsData.substring(spiffsData.lastIndexOf("/") + 1); // выделяем имя файла
ESPhttpUpdate.rebootOnUpdate(false);
//Serial.println(spiffsData);
t_httpUpdate_return ret = ESPhttpUpdate.updateSpiffs(HTTP.arg(spiffsS));
switch(ret) {
case HTTP_UPDATE_FAILED:
sendSetup(spiffsDataS, "Spiffs_FAILED");
statistics();
break;
case HTTP_UPDATE_NO_UPDATES:
sendSetup(spiffsDataS, "Spiffs_NO_UPDATES");
statistics();
break;
case HTTP_UPDATE_OK:
sendSetup(spiffsDataS, "Spiffs_UPDATE_OK");
statistics();
break;
}
writeFile(configTimerS, Timerset);
if (Scenary !=emptyS){
writeFile(ScenaryS, Scenary);
}
sendSetup(spiffsDataS, spiffsData);
saveConfigSetup ();
}
String buildData = HTTP.arg("build");
if (buildData != emptyS) {
//Serial.println(buildData);
writeFile("buildPach.txt", buildData);
buildData = buildData.substring(buildData.lastIndexOf("/") + 1); // выделяем имя файла
sendSetup(buildDataS, buildData);
saveConfigSetup ();
ESPhttpUpdate.rebootOnUpdate(true);
String updatePatch = "http://backup.privet.lv/esp/sonoff/Sonoff_Updater.ino.generic.bin";
//Serial.println(updatePatch);
t_httpUpdate_return jet = ESPhttpUpdate.update(updatePatch);
switch(jet) {
case HTTP_UPDATE_FAILED:
sendSetup(buildDataS, "build_FAILED");
statistics();
break;
case HTTP_UPDATE_NO_UPDATES:
sendSetup(buildDataS, "build_NO_UPDATES");
statistics();
break;
case HTTP_UPDATE_OK:
sendSetup(buildDataS, "build_UPDATE_OK");
statistics();
break;
}
}
}