Sonoff-diy-Ota-Firmware
Befehlsleitungsvorgang zum Hochladen einer neuen Firmware über die Luft auf Sonoff-DIY-Geräte mit der Rest-API http://developers.sonoff.tech/basicr3-rfr3-mini-http-api.html.
Erstellt mit Python 3.8 auf Ubuntu 20.04 und auf Sonoff Basic R3 und Sonoff Mini getestet.
Das Sonoff -Gerät muss sich im DIY -Modus und im selben Netzwerk (Sonoffdiy) befinden, wobei der Computer dieses Skript ausführt.
Dies erfordert:
- DIY 1.0:
- Jumper auf den ausgewiesenen Stiften
- WiFi -Netzwerk mit SSID: Sonoffdiy und Passwort: 20170618SN
- Diy 2.0: prüfen
Empfohlene Verwendung:
Appimage:
- Wenn Sie unter Linux sind, laden Sie die Appimage von der Seite "Releases" herunter und führen Sie sie aus.
Virtuelle Python -Umgebung (Linux & Windows):
- Erstellen Sie eine virtuelle Umgebung (Gebiet oder Conda oder etwas anderes):
python3 -m venv /path/to/new/virtual/environment
oder
conda create -n <environment_name> python=3.8
- Aktivieren Sie die Umgebung gemäß Ihrer virtuellen Umgebung.
- Installieren Sie die Abhängigkeiten:
pip3 install -r requirements.txt
- Führen Sie das Skript aus:
Die Befehle können sich in Windows unterscheiden.
Versuchen Sie nicht, die Firmware zu flashen, die größer als 508 KB ist. Verwenden Sie so etwas wie das Tasmota-lite.bin und später aus Tasmota, flashen Sie die komplette Firmware.
Prozessschritte:
- Laden Sie die Firmware-Datei herunter (z. B. tasmota-lite.bin).
- Führen Sie das main.py -Skript aus.
- Warten Sie, bis Ihr Gerät entdeckt wird. In diesem Fall stoppt die Entdeckung durch Drücken der Eingabetaste. Der Prozess erkennt alle Ewelink -Geräte im Netzwerk mithilfe von MDNs (dank ZeroConf https://pypi.org/project/zeroconf).
- Wählen Sie das Gerät aus, um die neue Firmware hochzuladen.
- Der HTTP -Server startet (dank Rangehttpserver https://github.com/danvk/RangeHttpserver), um das Verzeichnis der ausgewählten Firmware zu bedienen.
- Der Prozess stellt sicher, dass die OTA -Funktionalität unter Verwendung der entsprechenden REST -Anforderung entsperrt wird.
- Senden Sie eine Postanforderung an das Gerät, das den HTTP -Server -Link der neuen Firmware bereitstellt.
- Schlaf von 10 Minuten, um sicherzustellen, dass das Getriebe vorbei ist. Wenn Sie sehen, dass es vorbei ist (Tasmota WiFi erscheint), töten Sie die Proceess mit Strg-c.
Anmerkungen:
- Wenn das Gerät nicht auf MDNS -Nachrichten reagiert, entfernen Sie die Stromquelle und verbinden Sie sie erneut, während die Entdeckung im Gange ist.
Abhängigkeiten:
- https://pypi.org/project/rangeHttpserver/
- https://pypi.org/project/zeroconf
- https://pypi.org/project/requests/
- https://pypi.org/project/simple-menu/
Todo:
- Verwandte Anforderungen Fehlercodes.
- Fügen Sie eine Dockerfile hinzu.
Diese Skripte wurden schnell für meine eigenen Bedürfnisse entwickelt, um neue Firmware in Sonoff -Geräte zu flashen, da die vorhandenen Tools zu kompliziert schienen und es nicht schaffen konnten, sie unter Linux zu verwenden. Ich garantiere nicht, dass es in Fällen funktioniert. Bitte verwenden Sie es auf eigenes Risiko.