From f4ee4d5a7c6d96c3ed63f49dacb8ffbd6a08bdd5 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 9 Mar 2020 19:45:49 +0100 Subject: [PATCH] fix updater --- .gitignore | 1 + .../Shelly1_v2/Shelly1_v2/Shelly1_v2.ino | 8 +-- api.php | 6 ++- test.php | 1 + update.php | 50 +++++++++++++++++-- 5 files changed, 56 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 43c0f99..527fcff 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ _nemazat/css/main.css _nemazat/css/font-awesome.min.css app/logs/*.log .vscode/sftp.json +app/updater/*.bin diff --git a/_FIRMWARE/firmwares/Shelly1/Shelly1_v2/Shelly1_v2/Shelly1_v2.ino b/_FIRMWARE/firmwares/Shelly1/Shelly1_v2/Shelly1_v2/Shelly1_v2.ino index 334b5a9..5f16f25 100644 --- a/_FIRMWARE/firmwares/Shelly1/Shelly1_v2/Shelly1_v2/Shelly1_v2.ino +++ b/_FIRMWARE/firmwares/Shelly1/Shelly1_v2/Shelly1_v2/Shelly1_v2.ino @@ -54,6 +54,8 @@ void setup() { attachInterrupt(digitalPinToInterrupt(SWITCH), handleInterrupt, CHANGE); //wifi if (ssid != "") { + WiFi.disconnect(); + WiFi.softAPdisconnect(true); WiFi.persistent(false); WiFi.mode(WIFI_STA); WiFi.begin(ssid, pasw); @@ -81,7 +83,7 @@ void setup() { ); - auto ret = ESPhttpUpdate.update(client, host2, url2); + auto ret = ESPhttpUpdate.update(client, host2, 80, url2); delay(500); switch(ret) { case HTTP_UPDATE_FAILED: @@ -105,11 +107,11 @@ void setup() { break; } delay(500); - Serial.println("Update proběhl!"); - Serial.println(WiFi.localIP()); jsonContent = {}; jsonContent["token"] = apiToken; jsonContent["values"]["on/off"]["value"] = (String)state; + jsonContent["settings"]["network"]["ip"] = WiFi.localIP().toString(); + jsonContent["settings"]["network"]["mac"] = WiFi.macAddress(); sendDataToWeb(); return; } diff --git a/api.php b/api.php index ebc6f6e..19d00dc 100644 --- a/api.php +++ b/api.php @@ -38,7 +38,9 @@ Db::connect (DBHOST, DBUSER, DBPASS, DBNAME); //Read API data $json = file_get_contents('php://input'); $obj = json_decode($json, true); -$logManager->write("[API] Rest API request body -> decodet to json \n" . json_encode($obj, JSON_PRETTY_PRINT), LogRecordType::INFO); +if (defined(DEBUGMOD) && DEBUGMOD == 1) { + $logManager->write("[API] Rest API request body -> decodet to json \n" . json_encode($obj, JSON_PRETTY_PRINT), LogRecordType::INFO); +} //zabespecit proti Ddosu if (isset($obj['user']) && $obj['user'] != ''){ @@ -48,7 +50,7 @@ if (isset($obj['user']) && $obj['user'] != ''){ $userId = $user['user_id']; $atHome = $obj['atHome']; UserManager::atHome($userId, $atHome); - $logManager->write("[Record] user " . $userId . "changet his home state to " . $atHome . RECORDTIMOUT , LogRecordType::WARNING); + $logManager->write("[Record] user " . $userId . " changet his home state to " . $atHome . " " . RECORDTIMOUT , LogRecordType::INFO); echo 'Saved: ' . $atHome; header("HTTP/1.1 200 OK"); die(); diff --git a/test.php b/test.php index e93fec0..7882174 100644 --- a/test.php +++ b/test.php @@ -1,6 +1,7 @@
 	
 
diff --git a/update.php b/update.php index a98cc62..ae83a66 100644 --- a/update.php +++ b/update.php @@ -1,7 +1,31 @@ write("[Update] url: " . $localBinary, LogRecordType::INFO); +$logManager->write("[Update] version: " . $_SERVER['HTTP_X_ESP8266_SKETCH_MD5'], LogRecordType::INFO); +if (file_exists($localBinary)) { + $logManager->write("[Update] version PHP: " . md5_file($localBinary), LogRecordType::INFO); + if ($_SERVER['HTTP_X_ESP8266_SKETCH_MD5'] != md5_file($localBinary)) { + sendFile($localBinary); + } else { + header($_SERVER["SERVER_PROTOCOL"].' 304 Not Modified', true, 304); + } +} else { + header("HTTP/1.1 404 Not Found"); +} +die();