From f619834dde75be1dbda656fb4343c74473093b8f Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Fri, 15 May 2020 17:34:47 +0200 Subject: [PATCH 1/7] Ignore all user_config_override* --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5baf6b919..5ebd0bd78 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ .clang_complete .gcc-flags.json .cache -tasmota/user_config_override.h +tasmota/user_config_override* build build_output firmware.map From 62afcad7215d304a1d9159c3103b922366d32db9 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Wed, 20 May 2020 15:55:55 +0200 Subject: [PATCH 2/7] Update platformio.ini --- platformio.ini | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/platformio.ini b/platformio.ini index c9eb6d5f4..22259969c 100755 --- a/platformio.ini +++ b/platformio.ini @@ -109,8 +109,7 @@ build_flags = ${esp_defaults.build_flags} ; No exception code in firmware -fno-exceptions -lstdc++ - ; the following removes the 4-bytes alignment for PSTR(), waiting for a cleaner flag from Arduino Core - -DPSTR\(s\)=\(__extension__\(\{static\ const\ char\ __c\[\]\ __attribute__\(\(__aligned__\(1\)\)\)\ __attribute__\(\(section\(\ \"\\\\\".irom0.pstr.\"\ __FILE__\ \".\"\ __STRINGIZE\(__LINE__\)\ \".\"\ \ __STRINGIZE\(__COUNTER__\)\ \"\\\\\"\,\ \\\\\"aSM\\\\\"\,\ \@progbits\,\ 1\ \#\"\)\)\)\ =\ \(s\)\;\ \&__c\[0\]\;\}\)\) + ; the following removes the 4-bytes alignment for PSTR() -DPSTR_ALIGN=1 ; restrict to minimal mime-types -DMIMETYPE_MINIMAL From 53f459b43e9d9c6d954fbcc95eaaa5fdf6e80b8e Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Mon, 25 May 2020 17:39:59 +0200 Subject: [PATCH 3/7] Build firmware --- .../{CI_github.yml => CI_github.yml.off} | 0 ...thub_ESP32.yml => CI_github_ESP32.yml.off} | 0 .github/workflows/Tasmota_build.yml | 1479 +++++++++++++++++ tools/Esptool/ESP32/boot_app0.bin | Bin 0 -> 8192 bytes tools/Esptool/ESP32/bootloader_dout_40m.bin | Bin 0 -> 15872 bytes tools/Esptool/ESP32/partitions.bin | Bin 0 -> 3072 bytes tools/Esptool/ESP32/readme.txt | 1 + 7 files changed, 1480 insertions(+) rename .github/workflows/{CI_github.yml => CI_github.yml.off} (100%) rename .github/workflows/{CI_github_ESP32.yml => CI_github_ESP32.yml.off} (100%) create mode 100644 .github/workflows/Tasmota_build.yml create mode 100644 tools/Esptool/ESP32/boot_app0.bin create mode 100644 tools/Esptool/ESP32/bootloader_dout_40m.bin create mode 100644 tools/Esptool/ESP32/partitions.bin create mode 100644 tools/Esptool/ESP32/readme.txt diff --git a/.github/workflows/CI_github.yml b/.github/workflows/CI_github.yml.off similarity index 100% rename from .github/workflows/CI_github.yml rename to .github/workflows/CI_github.yml.off diff --git a/.github/workflows/CI_github_ESP32.yml b/.github/workflows/CI_github_ESP32.yml.off similarity index 100% rename from .github/workflows/CI_github_ESP32.yml rename to .github/workflows/CI_github_ESP32.yml.off diff --git a/.github/workflows/Tasmota_build.yml b/.github/workflows/Tasmota_build.yml new file mode 100644 index 000000000..575e71ce6 --- /dev/null +++ b/.github/workflows/Tasmota_build.yml @@ -0,0 +1,1479 @@ +name: Build_firmware + +on: + push: + pull_request: + + +jobs: + tasmota_pull: + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Use latest Tasmota development + run: | + git config --local user.name "Platformio BUILD" + git switch -c master + git remote add -f Tasmota "https://github.com/arendst/Tasmota.git" + git merge Tasmota/development --allow-unrelated-histories + - name: Push Tasmota # Push updates of latest Tasmota development to repo + uses: ad-m/github-push-action@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + branch: 'master' + force: true + + + tasmota: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-minimal: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-minimal + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-lite: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-lite + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-knx: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-knx + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-sensors: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-sensors + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-display: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-display + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-ir: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-ir + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-ircustom: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-ircustom + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-BG: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-BG + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-BR: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-BR + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-CN: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-CN + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-CZ: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-CZ + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-DE: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-DE + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-ES: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-ES + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-FR: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-FR + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-GR: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-GR + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-HE: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-HE + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-HU: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-HU + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-IT: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-IT + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-KO: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-KO + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-NL: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-NL + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-PL: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-PL + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-PT: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-PT + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-RO: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-RO + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-RU: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-RU + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-SE: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-SE + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-SK: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-SK + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-TR: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-TR + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-TW: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-TW + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota-UK: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota-UK + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32 + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-minimal: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-minimal + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-lite: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-lite + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-webcam: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-webcam + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-knx: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-knx + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-sensors: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-sensors + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-display: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-display + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-ir: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-ir + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-ircustom: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-ircustom + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-BG: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-BG + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-BR: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-BR + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-CN: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-CN + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-CZ: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-CZ + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-DE: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-DE + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-ES: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-ES + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-FR: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-FR + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-GR: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-GR + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-HE: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-HE + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-HU: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-HU + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-IT: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-IT + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-KO: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-KO + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-NL: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-NL + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-PL: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-PL + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-PT: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-PT + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-RO: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-RO + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-RU: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-RU + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-SE: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-SE + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-SK: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-SK + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-TR: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-TR + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-TW: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-TW + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + tasmota32-UK: + needs: tasmota_pull + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -U platformio + platformio upgrade --dev + platformio update + - name: Run PlatformIO + run: | + platformio run -e tasmota32-UK + - uses: actions/upload-artifact@v2 + with: + name: firmware + path: ./build_output/firmware + + + Upload: + needs: [tasmota-UK, tasmota32-ircustom, tasmota32-UK, tasmota32-TW, tasmota32-TR] + runs-on: ubuntu-latest + continue-on-error: true + steps: + - uses: actions/checkout@v1 + - uses: actions/download-artifact@v2 + with: + name: firmware + path: ./mv_firmware + - name: Display structure of downloaded files + run: ls -R + working-directory: ./mv_firmware + - name: Move firmware files in sub-folders + run: | + mkdir -p ./firmware/tasmota/languages + mkdir -p ./firmware/tasmota32/languages + mkdir -p ./firmware/tasmota32/ESP32_needed_files/ + mv ./mv_firmware/tasmota.* ./firmware/tasmota/ + mv ./mv_firmware/tasmota-sensors.* ./firmware/tasmota/ + mv ./mv_firmware/tasmota-minimal.* ./firmware/tasmota/ + mv ./mv_firmware/tasmota-lite.* ./firmware/tasmota/ + mv ./mv_firmware/tasmota-ir*.* ./firmware/tasmota/ + mv ./mv_firmware/tasmota-display.* ./firmware/tasmota/ + mv ./mv_firmware/tasmota-knx.* ./firmware/tasmota/ + mv ./mv_firmware/tasmota32.* ./firmware/tasmota32/ + mv ./mv_firmware/tasmota32-sensors.* ./firmware/tasmota32/ + mv ./mv_firmware/tasmota32-minimal.* ./firmware/tasmota32/ + mv ./mv_firmware/tasmota32-lite.* ./firmware/tasmota32/ + mv ./mv_firmware/tasmota32-ir*.* ./firmware/tasmota32/ + mv ./mv_firmware/tasmota32-display.* ./firmware/tasmota32/ + mv ./mv_firmware/tasmota32-web*.* ./firmware/tasmota32/ + mv ./mv_firmware/tasmota32-knx.* ./firmware/tasmota32/ + mv ./mv_firmware/tasmota32* ./firmware/tasmota32/languages/ + mv ./mv_firmware/* ./firmware/tasmota/languages/ + mv ./tools/Esptool/ESP32/*.* ./firmware/tasmota32/ESP32_needed_files/ + - name: Commit files # transfer the new binaries back into the repository + run: | + git config --local user.name "Platformio BUILD" + git rm -r --cached . + git add ./README.md + git add -f ./firmware/*.* + git commit -m "Tasmota ESP Binaries http://tasmota.com" + - name: Push changes # push the firmware files to branch firmware + uses: ad-m/github-push-action@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + branch: 'firmware' + force: true diff --git a/tools/Esptool/ESP32/boot_app0.bin b/tools/Esptool/ESP32/boot_app0.bin new file mode 100644 index 0000000000000000000000000000000000000000..13562cabb9648287fdf70d2a22789fdf1e4156b4 GIT binary patch literal 8192 zcmeI#u?+wq2n0Z!&B7Ip%ZdwNPjZydJlFk*h+E9ra}_6R0t5&UAV7cs0RjXF5FkLH gk-)3}W&dyVhNuJx5FkK+009C72oNAZfWSu}0Te{nn*aa+ literal 0 HcmV?d00001 diff --git a/tools/Esptool/ESP32/bootloader_dout_40m.bin b/tools/Esptool/ESP32/bootloader_dout_40m.bin new file mode 100644 index 0000000000000000000000000000000000000000..eab1e96d1f50bb4718805292a647224b6e97ca22 GIT binary patch literal 15872 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 oulh%M6v Date: Mon, 25 May 2020 17:53:15 +0200 Subject: [PATCH 4/7] Activate Platformio Override --- .github/workflows/Tasmota_build.yml | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/.github/workflows/Tasmota_build.yml b/.github/workflows/Tasmota_build.yml index 575e71ce6..e7e8c12d1 100644 --- a/.github/workflows/Tasmota_build.yml +++ b/.github/workflows/Tasmota_build.yml @@ -731,6 +731,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32 - uses: actions/upload-artifact@v2 with: @@ -754,6 +755,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-minimal - uses: actions/upload-artifact@v2 with: @@ -777,6 +779,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-lite - uses: actions/upload-artifact@v2 with: @@ -800,6 +803,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-webcam - uses: actions/upload-artifact@v2 with: @@ -823,6 +827,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-knx - uses: actions/upload-artifact@v2 with: @@ -846,6 +851,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-sensors - uses: actions/upload-artifact@v2 with: @@ -869,6 +875,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-display - uses: actions/upload-artifact@v2 with: @@ -892,6 +899,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-ir - uses: actions/upload-artifact@v2 with: @@ -915,6 +923,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-ircustom - uses: actions/upload-artifact@v2 with: @@ -938,6 +947,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-BG - uses: actions/upload-artifact@v2 with: @@ -961,6 +971,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-BR - uses: actions/upload-artifact@v2 with: @@ -984,6 +995,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-CN - uses: actions/upload-artifact@v2 with: @@ -1007,6 +1019,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-CZ - uses: actions/upload-artifact@v2 with: @@ -1030,6 +1043,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-DE - uses: actions/upload-artifact@v2 with: @@ -1053,6 +1067,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-ES - uses: actions/upload-artifact@v2 with: @@ -1076,6 +1091,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-FR - uses: actions/upload-artifact@v2 with: @@ -1099,6 +1115,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-GR - uses: actions/upload-artifact@v2 with: @@ -1122,6 +1139,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-HE - uses: actions/upload-artifact@v2 with: @@ -1145,6 +1163,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-HU - uses: actions/upload-artifact@v2 with: @@ -1168,6 +1187,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-IT - uses: actions/upload-artifact@v2 with: @@ -1191,6 +1211,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-KO - uses: actions/upload-artifact@v2 with: @@ -1214,6 +1235,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-NL - uses: actions/upload-artifact@v2 with: @@ -1237,6 +1259,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-PL - uses: actions/upload-artifact@v2 with: @@ -1260,6 +1283,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-PT - uses: actions/upload-artifact@v2 with: @@ -1283,6 +1307,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-RO - uses: actions/upload-artifact@v2 with: @@ -1306,6 +1331,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-RU - uses: actions/upload-artifact@v2 with: @@ -1329,6 +1355,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-SE - uses: actions/upload-artifact@v2 with: @@ -1352,6 +1379,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-SK - uses: actions/upload-artifact@v2 with: @@ -1375,6 +1403,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-TR - uses: actions/upload-artifact@v2 with: @@ -1398,6 +1427,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-TW - uses: actions/upload-artifact@v2 with: @@ -1421,6 +1451,7 @@ jobs: platformio update - name: Run PlatformIO run: | + mv platformio_override_sample.ini platformio_override.ini platformio run -e tasmota32-UK - uses: actions/upload-artifact@v2 with: From 4feefcc7b59ad1341d82e254badf6970b1215d34 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Mon, 25 May 2020 17:54:34 +0200 Subject: [PATCH 5/7] Branch dev --- .github/workflows/Tasmota_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Tasmota_build.yml b/.github/workflows/Tasmota_build.yml index e7e8c12d1..899784a28 100644 --- a/.github/workflows/Tasmota_build.yml +++ b/.github/workflows/Tasmota_build.yml @@ -21,7 +21,7 @@ jobs: uses: ad-m/github-push-action@master with: github_token: ${{ secrets.GITHUB_TOKEN }} - branch: 'master' + branch: 'development' force: true From 58494e4453a28c975ae104351ab2494ab6e148b5 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Mon, 25 May 2020 18:09:25 +0200 Subject: [PATCH 6/7] orig files --- .gitignore | 2 +- platformio.ini | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 5ebd0bd78..5baf6b919 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ .clang_complete .gcc-flags.json .cache -tasmota/user_config_override* +tasmota/user_config_override.h build build_output firmware.map diff --git a/platformio.ini b/platformio.ini index 22259969c..c9eb6d5f4 100755 --- a/platformio.ini +++ b/platformio.ini @@ -109,7 +109,8 @@ build_flags = ${esp_defaults.build_flags} ; No exception code in firmware -fno-exceptions -lstdc++ - ; the following removes the 4-bytes alignment for PSTR() + ; the following removes the 4-bytes alignment for PSTR(), waiting for a cleaner flag from Arduino Core + -DPSTR\(s\)=\(__extension__\(\{static\ const\ char\ __c\[\]\ __attribute__\(\(__aligned__\(1\)\)\)\ __attribute__\(\(section\(\ \"\\\\\".irom0.pstr.\"\ __FILE__\ \".\"\ __STRINGIZE\(__LINE__\)\ \".\"\ \ __STRINGIZE\(__COUNTER__\)\ \"\\\\\"\,\ \\\\\"aSM\\\\\"\,\ \@progbits\,\ 1\ \#\"\)\)\)\ =\ \(s\)\;\ \&__c\[0\]\;\}\)\) -DPSTR_ALIGN=1 ; restrict to minimal mime-types -DMIMETYPE_MINIMAL From fd069d7db8be741e25a02cd4ee864bca33f34813 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Mon, 25 May 2020 21:07:11 +0200 Subject: [PATCH 7/7] Hard coded logo link to arendst github --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8c8d7c024..9e33aa956 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![Tasmota logo](/tools/logo/TASMOTA_FullLogo_Vector.svg) +![Tasmota logo](https://github.com/arendst/Tasmota/blob/development/tools/logo/TASMOTA_FullLogo_Vector.svg) Alternative firmware for [ESP8266](https://en.wikipedia.org/wiki/ESP8266) based devices with **easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX**. _Written for Arduino IDE and PlatformIO._