diff --git a/.github/workflows/release.yaml b/.github/workflows/build.yaml similarity index 71% rename from .github/workflows/release.yaml rename to .github/workflows/build.yaml index eeb3401..dcd067d 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/build.yaml @@ -1,6 +1,9 @@ -name: ESPSomfy-RTS Release +name: ESPSomfy-RTS Build on: + push: + branches: [main] + pull_request: release: types: [published] @@ -16,7 +19,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 +57,7 @@ jobs: steps: - name: Get Release + if: github.event_name == 'release' id: get_release uses: bruceadams/get-release@v1.3.2 env: @@ -63,6 +67,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 +76,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,16 +93,25 @@ jobs: - name: Install PlatformIO and esptool run: pip install platformio esptool + - 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: Build LittleFS image - run: pio run -e ${{ matrix.env }} -t buildfs + - 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 - 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 \ @@ -97,7 +120,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 }} @@ -107,6 +145,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 }} @@ -116,6 +155,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/README.md b/README.md index 57a6899..19c5a85 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,10 @@ * 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. + * 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 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. diff --git a/data-src/appversion b/data-src/appversion index fad066f..f1cb5ae 100644 --- a/data-src/appversion +++ b/data-src/appversion @@ -1 +1 @@ -2.5.0 \ 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 4e3383b..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/platformio.ini b/platformio.ini index 3f5e5ec..0e5f5ea 100644 --- a/platformio.ini +++ b/platformio.ini @@ -13,8 +13,7 @@ default_envs = esp32c6 src_dir = src [env] -platform = https://github.com/pioarduino/platform-espressif32 -; platform = espressif32 @ 5.4.0 +platform = espressif32 @ 6.13.0 framework = arduino lib_deps = bblanchon/ArduinoJson@^7.2.2 @@ -28,7 +27,7 @@ extra_scripts = post:archive_elf.py board_build.filesystem = littlefs build_flags = - -DCORE_DEBUG_LEVEL=5 + -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; 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(); }));