ESP8266 Over-the-Air Updates – Python Fehler „bytes, not str“

Hallo zusammen,

und Danke an die genialen Köpfe hinter der ESP8266-Library für Arduino.

Ich hatte trotz neuster Arduino Version und unzähligen Neuinstallationen Probleme mit Python 3.5 bei folgender Fehlermeldung:

Traceback (most recent call last):
File …\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.0.0/tools/espota.py“, line 306, in <module>
sys.exit(main(sys.argv))
File …AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.0.0/tools/espota.py“, line 301, in main
return serve(options.esp_ip, options.esp_port, options.auth, options.image, command)
File …AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.0.0/tools/espota.py“, line 102, in serve
if(data.startswith(‚AUTH‘)):
TypeError: startswith first arg must be bytes or a tuple of bytes, not str

 

 

Für die, die schnell einen Fix wollen:

espotaPy.zip

Die Datei liegt (bei mir) unter C:\Users\BenutzerName\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.0.0\tools

einfach ersetzen.

 

Für die, die mehr wissen wollen:

Zeile 91: Hier will er Bytes anstatt einem String…

sent = sock2.sendto(message.encode(‚utf-8‘), remote_address)

 

Und sonst immer beim Empfang hinzugefügt..

Zeile  95, 116, 176:
data = data.decode(„utf-8“)

 

 

Nach diesen Änderungen funktioniert es perfekt.

LG

Torsten

Kommentar verfassen