Nun läuft es reliabel und halbwegs stabil! Habe den port 8000 in der firewall freigegeben, nutze Rechner und node näher am WLAN-Router und verwende als OTA-lib jetzt pycom-libraries/OTA.py at master · pycom/pycom-libraries · GitHub – da ist eine andere, ältere Version im Verzeichnis /1.0.1/flash/lib
Wenn es funktioniert schaut das so aus: Der node übermittelt seine aktuelle Versionsnummer als URL-Parameter an den Server:
http://192.168.178.21:8000/manifest.json?current_ver=1.0.0
Der Server spuckt nun das aus:
{
"delete": [],
"new": [],
"update": [
{
"URL": "http://192.168.178.21:8000/1.0.2/flash/main.py",
"dst_path": "/flash/main.py",
"hash": "9f372699c1ade7a182459367f2e84c2918677cd9"
}
],
"version": "1.0.2"
}
dann holt sich der node die neuen Dateien, in unserem Fall nur die geänderte main.py
, dann wird auf dem node eine neue Datei OTA_VERSION.py
, angelegt, die als Variable
VERSION = '1.0.2'
enthält. Der node macht einen restart und checkt – jetzt mit seiner neuen Versions-Nummer 1.0.2 nochmal die Lage. Keine neuere Software da, dann passt es!
auf dem node
Initializing filesystem as LittleFS!
Starting loop
Performing OTA
Requesting: manifest.json?current_ver=1.0.0
Requesting: 1.0.2/flash/main.py
ets Jun 8 2016 00:22:57
rst:0x7 (TG0WDT_SYS_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff8028,len:8
load:0x3fff8030,len:2156
ho 0 tail 12 room 4
load:0x4009fa00,len:19208
entry 0x400a05f4
Initializing filesystem as LittleFS!
Starting loop
Performing OTA
Requesting: manifest.json?current_ver=1.0.2
Already on the latest version
auf dem Server
root@XPS13-CGruber:~/ota-server# python3 OTA_server.py
Got query for: /manifest.json?current_ver=1.0.0
192.168.178.28 - - [27/Sep/2019 16:59:06] "GET /manifest.json?current_ver=1.0.0 HTTP/1.0" 200 -
Generating a manifest from version: 1.0.0
Got query for: /1.0.2/flash/main.py
192.168.178.28 - - [27/Sep/2019 16:59:07] "GET /1.0.2/flash/main.py HTTP/1.0" 200 -
Got query for: /manifest.json?current_ver=1.0.2
192.168.178.28 - - [27/Sep/2019 17:01:02] "GET /manifest.json?current_ver=1.0.2 HTTP/1.0" 200 -
Generating a manifest from version: 1.0.2