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
|
||||
|
||||
### Changed
|
||||
- Tasmota OTA scripts now support both unzipped and gzipped file uploads (#17378)
|
||||
|
||||
### Fixed
|
||||
- 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
|
||||
- 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)
|
||||
- Tasmota OTA scripts now support both unzipped and gzipped file uploads [#17378](https://github.com/arendst/Tasmota/issues/17378)
|
||||
|
||||
### Fixed
|
||||
- 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'];
|
||||
|
||||
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";
|
||||
} else {
|
||||
gzCompressFile($target_file);
|
||||
|
|
|
@ -36,7 +36,7 @@ import shutil
|
|||
import argparse
|
||||
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"
|
||||
|
||||
def main(args):
|
||||
|
@ -57,17 +57,27 @@ def main(args):
|
|||
# end if
|
||||
|
||||
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
|
||||
# end if
|
||||
|
||||
# copy firmware.bin to tasmota.bin or tasmota32.bin
|
||||
tname = os.path.normpath(os.path.dirname(args.image))
|
||||
new_filename = tname + os.sep + os.path.basename(tname) + '.bin'
|
||||
shutil.copy2(args.image, new_filename)
|
||||
if args.image.find("firmware.bin") != -1:
|
||||
# Legacy support for $SOURCE
|
||||
# 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))
|
||||
# C:\tmp\.pioenvs\tasmota-theo\tasmota-theo.bin
|
||||
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)
|
||||
files = {'file': open(new_filename, 'rb')}
|
||||
files = {'file': open(upload_file, 'rb')}
|
||||
req = requests.post(url, files=files)
|
||||
print(req.text)
|
||||
# end main
|
||||
|
|
|
@ -1,13 +1,28 @@
|
|||
# Original idea by Pascal Gollor at 2022-12-13
|
||||
|
||||
Import("env")
|
||||
import os
|
||||
import tasmotapiolib
|
||||
|
||||
# pio < 4.0.0
|
||||
# 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")
|
||||
# You need to specify 'upload_port' in platform_override.ini at '[env]' section
|
||||
|
||||
# pio >= 4.0.0
|
||||
env.Replace(UPLOADER=os.path.join("pio-tools", "espupload.py"))
|
||||
# clear upload flags
|
||||
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