mirror of https://github.com/arendst/Tasmota.git
Change Tasmota OTA scripts
Change Tasmota OTA scripts now support both unzipped and gzipped file uploads (#17378)
This commit is contained in:
parent
b2d3921778
commit
8ffff8b857
|
@ -9,6 +9,7 @@ All notable changes to this project will be documented in this file.
|
||||||
### Breaking Changed
|
### Breaking Changed
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
- Tasmota OTA scripts now support both unzipped and gzipped file uploads (#17378)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Shutter default motorstop set to 0 (#17403)
|
- Shutter default motorstop set to 0 (#17403)
|
||||||
|
|
|
@ -118,6 +118,7 @@ The latter links can be used for OTA upgrades too like ``OtaUrl https://ota.tasm
|
||||||
### Changed
|
### Changed
|
||||||
- ESP32 Framework (Core) from v2.0.5.3 to v2.0.5.4 (IPv6 support)
|
- ESP32 Framework (Core) from v2.0.5.3 to v2.0.5.4 (IPv6 support)
|
||||||
- TuyaMcu rewrite by btsimonh [#17051](https://github.com/arendst/Tasmota/issues/17051)
|
- TuyaMcu rewrite by btsimonh [#17051](https://github.com/arendst/Tasmota/issues/17051)
|
||||||
|
- Tasmota OTA scripts now support both unzipped and gzipped file uploads [#17378](https://github.com/arendst/Tasmota/issues/17378)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Shutter default motorstop set to 0 [#17403](https://github.com/arendst/Tasmota/issues/17403)
|
- Shutter default motorstop set to 0 [#17403](https://github.com/arendst/Tasmota/issues/17403)
|
||||||
|
|
|
@ -42,7 +42,7 @@ $target_file = "tasmota/".$image;
|
||||||
$hostname = $_SERVER['SERVER_NAME'];
|
$hostname = $_SERVER['SERVER_NAME'];
|
||||||
|
|
||||||
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
|
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
|
||||||
if (strpos($target_file, "tasmota32")) {
|
if (strpos($target_file, "tasmota32") | strpos($target_file, ".gz")) {
|
||||||
echo "The file $image has been uploaded to OTA server $hostname. \n";
|
echo "The file $image has been uploaded to OTA server $hostname. \n";
|
||||||
} else {
|
} else {
|
||||||
gzCompressFile($target_file);
|
gzCompressFile($target_file);
|
||||||
|
|
|
@ -36,7 +36,7 @@ import shutil
|
||||||
import argparse
|
import argparse
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
#HOST_URL = "domus1:80/api/upload-arduino.php"
|
# Default URL overwritten by [env] and/or [env:tasmota32_base] upload_port
|
||||||
HOST_URL = "otaserver/ota/upload-tasmota.php"
|
HOST_URL = "otaserver/ota/upload-tasmota.php"
|
||||||
|
|
||||||
def main(args):
|
def main(args):
|
||||||
|
@ -57,17 +57,27 @@ def main(args):
|
||||||
# end if
|
# end if
|
||||||
|
|
||||||
if not os.path.exists(args.image):
|
if not os.path.exists(args.image):
|
||||||
print('Sorry: the file %s does not exist', args.image)
|
print('Sorry: the file {} does not exist'.format(args.image))
|
||||||
return 2
|
return 2
|
||||||
# end if
|
# end if
|
||||||
|
|
||||||
|
if args.image.find("firmware.bin") != -1:
|
||||||
|
# Legacy support for $SOURCE
|
||||||
# copy firmware.bin to tasmota.bin or tasmota32.bin
|
# copy firmware.bin to tasmota.bin or tasmota32.bin
|
||||||
|
# C:\tmp\.pioenvs\tasmota-theo\firmware.bin
|
||||||
tname = os.path.normpath(os.path.dirname(args.image))
|
tname = os.path.normpath(os.path.dirname(args.image))
|
||||||
new_filename = tname + os.sep + os.path.basename(tname) + '.bin'
|
# C:\tmp\.pioenvs\tasmota-theo\tasmota-theo.bin
|
||||||
shutil.copy2(args.image, new_filename)
|
upload_file = tname + os.sep + os.path.basename(tname) + '.bin'
|
||||||
|
shutil.copy2(args.image, upload_file)
|
||||||
|
else:
|
||||||
|
# Support for bin_file and bin_gz_file
|
||||||
|
upload_file = args.image
|
||||||
|
# end if
|
||||||
|
|
||||||
|
# print('Debug filename in {}, upload {}'.format(args.image, upload_file))
|
||||||
|
|
||||||
url = 'http://%s' % (args.host_url)
|
url = 'http://%s' % (args.host_url)
|
||||||
files = {'file': open(new_filename, 'rb')}
|
files = {'file': open(upload_file, 'rb')}
|
||||||
req = requests.post(url, files=files)
|
req = requests.post(url, files=files)
|
||||||
print(req.text)
|
print(req.text)
|
||||||
# end main
|
# end main
|
||||||
|
|
|
@ -1,13 +1,28 @@
|
||||||
|
# Original idea by Pascal Gollor at 2022-12-13
|
||||||
|
|
||||||
Import("env")
|
Import("env")
|
||||||
import os
|
import os
|
||||||
|
import tasmotapiolib
|
||||||
|
|
||||||
# pio < 4.0.0
|
# You need to specify 'upload_port' in platform_override.ini at '[env]' section
|
||||||
# from base64 import b64decode
|
|
||||||
# env.Replace(UPLOADER="pio-tools\espupload.py")
|
|
||||||
# env.Replace(UPLOADERFLAGS="")
|
|
||||||
# env.Replace(UPLOADCMD="$UPLOADER -u " + b64decode(ARGUMENTS.get("UPLOAD_PORT")) + " -f $SOURCES")
|
|
||||||
|
|
||||||
# pio >= 4.0.0
|
# clear upload flags
|
||||||
env.Replace(UPLOADER=os.path.join("pio-tools", "espupload.py"))
|
|
||||||
env.Replace(UPLOADERFLAGS="")
|
env.Replace(UPLOADERFLAGS="")
|
||||||
env.Replace(UPLOADCMD="$PYTHONEXE $UPLOADER -u $UPLOAD_PORT -f $SOURCES")
|
|
||||||
|
# Use espupload.py which supports both unzipped and zipped binaries
|
||||||
|
env.Replace(UPLOADER=os.path.join("pio-tools", "espupload.py"))
|
||||||
|
|
||||||
|
# unzipped binary location: build_output\firmware\tasmota-theo.bin
|
||||||
|
bin_file = tasmotapiolib.get_final_bin_path(env)
|
||||||
|
# zipped binary location: build_output\firmware\tasmota-theo.bin.gz
|
||||||
|
bin_gz_file = bin_file.with_suffix(".bin.gz")
|
||||||
|
|
||||||
|
if os.path.exists(bin_gz_file):
|
||||||
|
# Zipped binary file - build_output\firmware\tasmota-theo.bin.gz
|
||||||
|
env.Replace(UPLOADCMD="$PYTHONEXE $UPLOADER -u $UPLOAD_PORT -f {}".format(bin_gz_file))
|
||||||
|
elif os.path.exists(bin_file):
|
||||||
|
# Unzipped binary file - build_output\firmware\tasmota-theo.bin
|
||||||
|
env.Replace(UPLOADCMD="$PYTHONEXE $UPLOADER -u $UPLOAD_PORT -f {}".format(bin_file))
|
||||||
|
else:
|
||||||
|
# Unzipped binary file - C:\tmp\.pioenvs\tasmota-theo\firmware.bin
|
||||||
|
env.Replace(UPLOADCMD="$PYTHONEXE $UPLOADER -u $UPLOAD_PORT -f $SOURCES")
|
||||||
|
|
Loading…
Reference in New Issue