feat: implement OTA functionality and update build scripts; change upgrade link to OTA in HTML

This commit is contained in:
Manuel Weiser 2025-02-17 12:41:25 +01:00
parent 240795a2d0
commit 2a67d8f67c
6 changed files with 33 additions and 5 deletions

View File

@ -43,11 +43,16 @@ jobs:
--flash_mode dio \
--flash_freq 40m \
--flash_size 4MB \
-o .pio/build/esp32dev/filaman.bin \
-o .pio/build/esp32dev/filaman_full.bin \
0x1000 .pio/build/esp32dev/bootloader.bin \
0x8000 .pio/build/esp32dev/partitions.bin \
0x10000 .pio/build/esp32dev/firmware.bin \
0x290000 .pio/build/esp32dev/spiffs.bin
- name: Prepare OTA firmware
run: |
# Use PlatformIO to create a proper OTA image
cp .pio/build/esp32dev/firmware.bin .pio/build/esp32dev/filaman_ota.bin
- name: Get version from tag
id: get_version
@ -71,9 +76,10 @@ jobs:
- name: Create Release with GitHub CLI
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Changed from GITHUB_TOKEN to GH_TOKEN
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create "${{ github.ref_name }}" \
--title "Release ${{ steps.get_version.outputs.VERSION }}" \
--notes "${{ steps.changelog.outputs.CHANGES }}" \
".pio/build/esp32dev/filaman.bin#filaman.bin"
".pio/build/esp32dev/filaman_full.bin#filaman_full.bin" \
".pio/build/esp32dev/filaman_ota.bin#filaman_ota.bin"

View File

@ -21,7 +21,7 @@
<a href="/waage">Scale</a>
<a href="/spoolman">Spoolman/Bambu</a>
<a href="/about">About</a>
<a href="/upgrade">Upgrade</a>
<a href="/ota">Upgrade</a>
</nav>
<div class="status-container">
<div class="status-item">

View File

@ -29,7 +29,7 @@ lib_deps =
bblanchon/ArduinoJson @ ^7.3.0
knolleary/PubSubClient @ ^2.8
digitaldragon/SSLClient @ ^1.3.2
jandrassy/ArduinoOTA @ ^1.1.0
ipdotsetaf/ESPAsyncHTTPUpdateServer @ ^2.0.0
; Enable SPIFFS upload
board_build.filesystem = spiffs

11
src/ota.cpp Normal file
View File

@ -0,0 +1,11 @@
#include <Arduino.h>
#include "ota.h"
#include <ESPAsyncWebServer.h>
#include <ESPAsyncHTTPUpdateServer.h>
ESPAsyncHTTPUpdateServer updateServer;
void setupOTA(AsyncWebServer &server) {
updateServer.setup(&server, "/ota", "admin", "admin");
//updateServer.setup(&server);
}

8
src/ota.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef OTA_H
#define OTA_H
#include <ESPAsyncWebServer.h>
void setupOTA(AsyncWebServer &server);
#endif

View File

@ -7,6 +7,7 @@
#include "nfc.h"
#include "scale.h"
#include "esp_task_wdt.h"
#include "ota.h"
// Cache-Control Header definieren
#define CACHE_CONTROL "max-age=31536000" // Cache für 1 Jahr
@ -160,6 +161,8 @@ void setupWebserver(AsyncWebServer &server) {
Serial.print("Geladene Spoolman-URL: ");
Serial.println(spoolmanUrl);
setupOTA(server);
// Route für about
server.on("/about", HTTP_GET, [](AsyncWebServerRequest *request){
Serial.println("Anfrage für /about erhalten");