From 5a167e3b119ca30877d3387305f405c9dad89160 Mon Sep 17 00:00:00 2001 From: cjkas Date: Fri, 3 Apr 2026 20:07:40 +0200 Subject: [PATCH 1/9] Fix bkp bug --- src/Web.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Web.cpp b/src/Web.cpp index ca40c14..71c063c 100644 --- a/src/Web.cpp +++ b/src/Web.cpp @@ -2115,8 +2115,10 @@ void Web::begin() { AsyncJsonResp resp; resp.beginResponse(request, g_async_content, sizeof(g_async_content)); resp.beginObject(); + resp.beginObject("config"); serializeTransceiverConfig(resp); resp.endObject(); + resp.endObject(); resp.endResponse(); })); From 72e275128b9a0e6ed173ae008bd8dd93e77de896 Mon Sep 17 00:00:00 2001 From: cjkas Date: Sat, 4 Apr 2026 10:44:06 +0200 Subject: [PATCH 2/9] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 57a6899..9f181a7 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ * Backup does no longer use LITTLEFS. Only RAM is used. Storage should not wear out so quick. * Added uptime info in web UI +## There is a partition layout modification it's just better to perform full ESP32 wipeout. Perform backup then wipeout the firmware and restore from the bkp. + # ESPSomfy-RTS A controller for Somfy RTS blinds and shades that supports up to 32 individual shades and 16 groups over 433MHz RTx protocols. If you have IO Home Control motors this project is not for you but you can use the IO Remote protocol to connect the ESPSomfy RTS device to a disected remote. Look in the [Wiki](https://github.com/rstrouse/ESPSomfy-RTS/wiki/Controlling-Motors-with-GPIO) for options and verify whether the solution is workable for you. From 9bcf2eb3f5de2b9a2a8b6c4f105134ef5cc7a7a8 Mon Sep 17 00:00:00 2001 From: cjkas Date: Sat, 4 Apr 2026 12:02:31 +0200 Subject: [PATCH 3/9] fix release build caused by tool rename --- .github/workflows/release.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index eeb3401..da8c905 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -85,10 +85,13 @@ jobs: - name: Build LittleFS image run: pio run -e ${{ matrix.env }} -t buildfs + - name: List build artifacts + run: ls -la .pio/build/${{ matrix.env }}/ + - name: Create onboard image run: | python -m esptool --chip ${{ matrix.chip }} \ - merge_bin -o ${{ matrix.obname }} \ + merge-bin -o ${{ matrix.obname }} \ ${{ matrix.addr_bootloader }} .pio/build/${{ matrix.env }}/bootloader.bin \ 0x8000 .pio/build/${{ matrix.env }}/partitions.bin \ 0x10000 .pio/build/${{ matrix.env }}/firmware.bin \ From 15d5b064d4a1ba8b8b5c0042f63789cfdcda7916 Mon Sep 17 00:00:00 2001 From: cjkas Date: Sat, 4 Apr 2026 12:40:14 +0200 Subject: [PATCH 4/9] improve release build --- .../workflows/{release.yaml => build.yaml} | 42 ++++++++++++--- .github/workflows/ci.yaml | 51 ------------------- 2 files changed, 36 insertions(+), 57 deletions(-) rename .github/workflows/{release.yaml => build.yaml} (75%) delete mode 100644 .github/workflows/ci.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/build.yaml similarity index 75% rename from .github/workflows/release.yaml rename to .github/workflows/build.yaml index da8c905..8ebcfed 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/build.yaml @@ -1,6 +1,8 @@ -name: ESPSomfy-RTS Release +name: ESPSomfy-RTS Build on: + push: + pull_request: release: types: [published] @@ -16,7 +18,7 @@ jobs: # fwname: firmware-only binary for OTA updates # obname: onboard image (bootloader + partitions + firmware + littlefs merged) # for flashing a new chip via USB/serial - # addr_bootloader: chip-dependent (ESP32: 0x1000, C3/S3: 0x0) + # addr_bootloader: chip-dependent (ESP32: 0x1000, C3/S3/C6: 0x0) # addr_fs: must match spiffs/littlefs offset in esp32_3MB.csv include: - env: esp32dev @@ -54,6 +56,7 @@ jobs: steps: - name: Get Release + if: github.event_name == 'release' id: get_release uses: bruceadams/get-release@v1.3.2 env: @@ -63,6 +66,7 @@ jobs: uses: actions/checkout@v4 - name: Update version from release tag + if: github.event_name == 'release' run: | VERSION="${{ github.event.release.tag_name }}" VERSION="${VERSION#v}" @@ -71,6 +75,15 @@ jobs: sed -i "s/\?v=[0-9.]*c/?v=${VERSION}c/g" data-src/index.html sed -i "s/appVersion = 'v[0-9.]*'/appVersion = 'v${VERSION}'/" data-src/index.js + - name: Commit version update + if: github.event_name == 'release' && matrix.env == 'esp32dev' + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add src/ConfigSettings.h data-src/appversion data-src/index.html data-src/index.js + git commit -m "chore: bump version to ${{ github.event.release.tag_name }}" + git push origin HEAD:${{ github.event.release.target_commitish }} + - name: Set up Python uses: actions/setup-python@v5 with: @@ -79,14 +92,14 @@ jobs: - name: Install PlatformIO and esptool run: pip install platformio esptool - - name: Build firmware - run: pio run -e ${{ matrix.env }} - - name: Build LittleFS image run: pio run -e ${{ matrix.env }} -t buildfs + - name: Build firmware + run: pio run -e ${{ matrix.env }} + - name: List build artifacts - run: ls -la .pio/build/${{ matrix.env }}/ + run: find .pio/build/${{ matrix.env }} -maxdepth 1 -name "*.bin" | sort - name: Create onboard image run: | @@ -100,7 +113,22 @@ jobs: - name: Compress onboard image run: zip ${{ matrix.obname }}.zip ${{ matrix.obname }} + - name: Upload artifacts + if: github.event_name != 'release' + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.name }} + path: | + .pio/build/${{ matrix.env }}/firmware.bin + .pio/build/${{ matrix.env }}/firmware.elf + .pio/build/${{ matrix.env }}/partitions.bin + .pio/build/${{ matrix.env }}/bootloader.bin + .pio/build/${{ matrix.env }}/littlefs.bin + ${{ matrix.obname }}.zip + retention-days: 5 + - name: Upload LittleFS + if: github.event_name == 'release' uses: shogo82148/actions-upload-release-asset@v1.7.5 with: github_token: ${{ github.token }} @@ -110,6 +138,7 @@ jobs: overwrite: true - name: Upload firmware + if: github.event_name == 'release' uses: shogo82148/actions-upload-release-asset@v1.7.5 with: github_token: ${{ github.token }} @@ -119,6 +148,7 @@ jobs: overwrite: true - name: Upload onboard image + if: github.event_name == 'release' uses: shogo82148/actions-upload-release-asset@v1.7.5 with: github_token: ${{ github.token }} diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml deleted file mode 100644 index 8e0a5c1..0000000 --- a/.github/workflows/ci.yaml +++ /dev/null @@ -1,51 +0,0 @@ -name: ESPSomfy-RTS - -on: [push, pull_request] - -jobs: - build: - name: ${{ matrix.name }} - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - include: - - env: esp32dev - name: ESP32 - - env: esp32c3 - name: ESP32-C3 - - env: esp32s3 - name: ESP32-S3 - - env: esp32c6 - name: ESP32-C6 - - steps: - - name: Check out code - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.12" - - - name: Install PlatformIO - run: pip install platformio - - - name: Build ${{ matrix.name }} - run: pio run -e ${{ matrix.env }} - - - name: Build LittleFS image - run: pio run -e ${{ matrix.env }} -t buildfs - - - name: Upload firmware - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.name }} - path: | - .pio/build/${{ matrix.env }}/firmware.bin - .pio/build/${{ matrix.env }}/firmware.elf - .pio/build/${{ matrix.env }}/partitions.bin - .pio/build/${{ matrix.env }}/bootloader.bin - .pio/build/${{ matrix.env }}/littlefs.bin - retention-days: 5 From d15b05cfbd424acfd7424cc5a8122103705cc31c Mon Sep 17 00:00:00 2001 From: cjkas Date: Sat, 4 Apr 2026 12:44:57 +0200 Subject: [PATCH 5/9] Preserve littlefs image before firmware build wipes it out --- .github/workflows/build.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 8ebcfed..9af09e2 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -95,9 +95,15 @@ jobs: - name: Build LittleFS image run: pio run -e ${{ matrix.env }} -t buildfs + - name: Save LittleFS image + run: cp .pio/build/${{ matrix.env }}/littlefs.bin littlefs.bin + - name: Build firmware run: pio run -e ${{ matrix.env }} + - name: Restore LittleFS image + run: cp littlefs.bin .pio/build/${{ matrix.env }}/littlefs.bin + - name: List build artifacts run: find .pio/build/${{ matrix.env }} -maxdepth 1 -name "*.bin" | sort From b785dc296783e9a04b7e2293f911119fb3113a29 Mon Sep 17 00:00:00 2001 From: cjkas Date: Sat, 4 Apr 2026 12:50:26 +0200 Subject: [PATCH 6/9] build only on open PRs --- .github/workflows/build.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 9af09e2..dcd067d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -2,6 +2,7 @@ name: ESPSomfy-RTS Build on: push: + branches: [main] pull_request: release: types: [published] From e513f94a371de6c0fa9f183a2eb0323a085a0ddc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 4 Apr 2026 10:57:03 +0000 Subject: [PATCH 7/9] chore: bump version to v3.0.10 --- data-src/appversion | 2 +- data-src/index.html | 8 ++++---- data-src/index.js | 2 +- src/ConfigSettings.h | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/data-src/appversion b/data-src/appversion index 752a79e..f1cb5ae 100644 --- a/data-src/appversion +++ b/data-src/appversion @@ -1 +1 @@ -2.4.8 \ No newline at end of file +3.0.10 \ No newline at end of file diff --git a/data-src/index.html b/data-src/index.html index e46ab30..ed72d80 100644 --- a/data-src/index.html +++ b/data-src/index.html @@ -8,9 +8,9 @@ - - - + + + @@ -114,7 +114,7 @@ rel="apple-touch-startup-image"> - +
diff --git a/data-src/index.js b/data-src/index.js index 46f0a39..ce10a44 100644 --- a/data-src/index.js +++ b/data-src/index.js @@ -1270,7 +1270,7 @@ var security = new Security(); class General { initialized = false; - appVersion = 'v2.4.8'; + appVersion = 'v3.0.10'; reloadApp = false; init() { if (this.initialized) return; diff --git a/src/ConfigSettings.h b/src/ConfigSettings.h index bdd62a7..94a7509 100644 --- a/src/ConfigSettings.h +++ b/src/ConfigSettings.h @@ -5,7 +5,7 @@ #ifndef configsettings_h #define configsettings_h #include "WResp.h" -#define FW_VERSION "v2.4.8" +#define FW_VERSION "v3.0.10" enum class conn_types_t : byte { unset = 0x00, wifi = 0x01, From f0d69072f9f7719065e36f456ab129dc1f96eecf Mon Sep 17 00:00:00 2001 From: cjkas Date: Sat, 4 Apr 2026 12:58:37 +0200 Subject: [PATCH 8/9] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9f181a7..19c5a85 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ * Added uptime info in web UI ## There is a partition layout modification it's just better to perform full ESP32 wipeout. Perform backup then wipeout the firmware and restore from the bkp. + * fwname: firmware-only binary for OTA updates + * obname: onboard image (bootloader + partitions + firmware + littlefs merged) for flashing a new chip via USB/serial # ESPSomfy-RTS From 3a3ce2ae6a081033c427749c74a774fb4ab49656 Mon Sep 17 00:00:00 2001 From: cjkas Date: Sat, 4 Apr 2026 19:58:38 +0200 Subject: [PATCH 9/9] Update platform to espressif32 @ 6.13.0. SSID scan interval increased to 10 minutes to offload ESP. --- platformio.ini | 4 ++-- src/ESPNetwork.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/platformio.ini b/platformio.ini index 3cbb462..3c6fb82 100644 --- a/platformio.ini +++ b/platformio.ini @@ -12,7 +12,7 @@ default_envs = esp32devdbg [env] -platform = espressif32 @ 5.4.0 +platform = espressif32 @ 6.13.0 framework = arduino lib_deps = bblanchon/ArduinoJson@^7.2.2 @@ -26,7 +26,7 @@ extra_scripts = board_build.filesystem = littlefs build_flags = - -DCORE_DEBUG_LEVEL=1 + -DCORE_DEBUG_LEVEL=3 -DCONFIG_ESP_COREDUMP_ENABLE_TO_FLASH=1 -DCONFIG_ESP_COREDUMP_DATA_FORMAT_ELF=1 -DCONFIG_ESP_COREDUMP_CHECKSUM_CRC32=1 diff --git a/src/ESPNetwork.h b/src/ESPNetwork.h index 338a282..a77921c 100644 --- a/src/ESPNetwork.h +++ b/src/ESPNetwork.h @@ -7,7 +7,7 @@ //enum class conn_types_t : byte; #define CONNECT_TIMEOUT 20000 -#define SSID_SCAN_INTERVAL 60000 +#define SSID_SCAN_INTERVAL 600000 class ESPNetwork { protected: unsigned long lastEmit = 0;