Sonoff-Diy-Ota-Crimpare
使用REST API http://developers.sonoff.tech/basicr3-rfr3-mini-http-api.html使用REST API http://developers.sonoff.tech.tech.tech.tech/basicr3-rfr3-rfr3-rfr3-r.html,將新固件上傳到Sonoff DIY設備上的命令行進程。
在Ubuntu 20.04上使用Python 3.8創建,並在Sonoff Basic R3和Sonoff Mini上進行了測試。
Sonoff設備必須處於DIY模式,並在運行此腳本的計算機上處於同一網絡(Sonoffdiy)。
這需要:
- DIY 1.0:
- 指定別針的跳線
- 帶有SSID的WiFi網絡:Sonoffdiy和密碼:20170618SN
- DIY 2.0:檢查http://developers.sonoff.tech/sonoff-diy-mode-api-protocol.html
推薦使用:
適應性:
- 如果在Linux上,請從“版本”頁面下載並執行附屬物。
Python虛擬環境(Linux&Windows):
- 創建虛擬環境(VENV或CONDA或其他其他環境):
python3 -m venv /path/to/new/virtual/environment
或者
conda create -n <environment_name> python=3.8
- 根據您的虛擬環境激活環境。
- 安裝依賴項:
pip3 install -r requirements.txt
- 執行腳本:
命令可能與Windows不同。
請勿嘗試閃爍大於508KB的固件。使用諸如tasmota-lite.bin之類的東西,然後從tasmota內部閃爍完整的固件。
過程步驟:
- 下載固件文件(例如tasmota-lite.bin)。
- 運行main.py腳本。
- 等到發現設備。如果是這樣,則通過按Enter來停止發現。該過程使用MDNS檢測網絡上的所有EWELINK設備(感謝Zeroconf https://pypi.org/project/project/zeroconf)。
- 選擇設備上傳新固件。
- http服務器啟動(感謝Rangehttpserver https://github.com/danvk/rangehttpserver),以服務所選固件的目錄。
- 該過程使用適當的REST請求確保OTA功能已解鎖。
- 向提供新固件的HTTP服務器鏈接的設備發送帖子請求。
- 睡眠10分鐘,以確保變速箱結束。如果您看到它已經結束(出現tasmota wifi),請用ctrl-c殺死該創圖。
筆記:
- 如果設備未響應MDNS消息,則在發現正在進行的過程中刪除電源並將其再次連接。
依賴性:
- https://pypi.org/project/rangehttpserver/
- https://pypi.org/project/zeroconf
- https://pypi.org/project/requests/
- https://pypi.org/project/simple-term-menu/
托多:
這些腳本很快就為我自己開發,需要將新固件刷到Sonoff設備中,因為現有工具似乎太複雜了並且無法在Linux上使用它。我不保證它在任何情況下都可以使用。請自行使用它。