From 416443ca1a31032c0447c23abc9d2c10f310ec78 Mon Sep 17 00:00:00 2001 From: Robert Strouse Date: Sat, 30 Dec 2023 21:53:20 -0800 Subject: [PATCH] Working on Workflow --- GitOTA.cpp | 9 ++++----- SomfyController.ino | 8 ++++---- SomfyController.ino.esp32.bin | Bin 1288288 -> 1288288 bytes 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/GitOTA.cpp b/GitOTA.cpp index b246161..5002026 100644 --- a/GitOTA.cpp +++ b/GitOTA.cpp @@ -316,11 +316,11 @@ int GitUpdater::checkInternet() { int httpCode = https.sendRequest("HEAD"); if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY || httpCode == HTTP_CODE_FOUND) { err = 0; - Serial.printf("Check Internet Success: %dms\n", millis() - t); + Serial.printf("Check Internet Success: %ldms\n", millis() - t); } else { err = httpCode; - Serial.printf("Check Internet Error: %d: %dms\n", err, millis() - t); + Serial.printf("Check Internet Error: %d: %ldms\n", err, millis() - t); } https.end(); } @@ -391,8 +391,7 @@ int8_t GitUpdater::downloadFile() { if(client) { client->setInsecure(); HTTPClient https; - uint8_t ndx = 0; - char url[128]; + char url[196]; sprintf(url, "%s%s", this->baseUrl, this->currentFile); Serial.println(url); if(https.begin(*client, url)) { @@ -455,7 +454,7 @@ int8_t GitUpdater::downloadFile() { } } free(buff); - if(len < total) { + if(len > total) { Serial.println("Error downloading file!!!"); return -42; diff --git a/SomfyController.ino b/SomfyController.ino index a76939e..4fe64b8 100644 --- a/SomfyController.ino +++ b/SomfyController.ino @@ -49,17 +49,17 @@ void loop() { } uint32_t timing = millis(); net.loop(); - if(millis() - timing > 100) Serial.printf("Timing Net: %dms\n", millis() - timing); + if(millis() - timing > 100) Serial.printf("Timing Net: %ldms\n", millis() - timing); timing = millis(); somfy.loop(); - if(millis() - timing > 100) Serial.printf("Timing Somfy: %dms\n", millis() - timing); + if(millis() - timing > 100) Serial.printf("Timing Somfy: %ldms\n", millis() - timing); timing = millis(); if(net.connected()) { webServer.loop(); - if(millis() - timing > 200) Serial.printf("Timing WebServer: %dms\n", millis() - timing); + if(millis() - timing > 200) Serial.printf("Timing WebServer: %ldms\n", millis() - timing); timing = millis(); sockEmit.loop(); - if(millis() - timing > 100) Serial.printf("Timing Socket: %dms\n", millis() - timing); + if(millis() - timing > 100) Serial.printf("Timing Socket: %ldms\n", millis() - timing); timing = millis(); } if(rebootDelay.reboot && millis() > rebootDelay.rebootTime) { diff --git a/SomfyController.ino.esp32.bin b/SomfyController.ino.esp32.bin index 4ec3367e475785af659c48f374d73846706fe295..1576d6c9bbbd4a44ad8b0f2df4f01bb8a5cc9674 100644 GIT binary patch delta 18399 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

)Ra!9L;}cq_IPGRlBd;&{9m55P0<1Uw3N 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 SwJ{Z}JJ