Sonoff-Diy-Ota-Firmware
Процесс командной строки для загрузки новой прошивки через воздух в устройства DIY Sonoff с использованием REST API http://developers.sonoff.tech/basicr3-rfr3-mini-http-api.html.
Создан с использованием Python 3.8 на Ubuntu 20.04 и протестировано на Sonoff Basic R3 и Sonoff Mini.
Устройство Sonoff должно находиться в режиме DIY и в той же сети (Sonoffdiy) с компьютером, который работает под этим сценарием.
Это требует:
- DIY 1.0:
- Джемпер на обозначенных булавках
- Wi -Fi Network с SSID: Sonoffdiy и пароль: 20170618sn
- DIY 2.0: Проверьте http://developers.sonoff.tech/sonoff-diy-mode-api-protocol.html
Рекомендуемое использование:
Армимаж:
- Если на Linux, загрузите и выполните Appimage со страницы релизов.
Виртуальная среда 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.
Не пытайтесь прошивать прошивку, которая превышает 508 КБ. Используйте что-то вроде Tasmota-lite.bin, а затем и внутри Tasmota, проверните полную прошивку.
Шаги процесса:
- Загрузите файл прошивки (например, tasmota-lite.bin).
- Запустите сценарий Main.py.
- Подождите, пока ваше устройство не будет обнаружено. Если так, то открытие останавливается, нажав Enter. Процесс обнаруживает все устройства Ewelink в сети с использованием MDNS (благодаря ZeroConf https://pypi.org/project/zeroconf).
- Выберите устройство, чтобы загрузить новую прошивку.
- Сервер HTTP начинается (благодаря Rangehttpserver https://github.com/danvk/rangehttpserver) для обслуживания каталога выбранной прошивки.
- Процесс гарантирует, что функция OTA разблокирована, используя соответствующий запрос REST.
- Отправьте запрос сообщения на устройство, предоставляя ссылку на HTTP -сервер новой прошивки.
- Сон 10 минут, чтобы убедиться, что передача закончилась. Если вы видите, что это кончено (появляется Tasmota Wi-Fi), убейте производители с помощью 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/
Тодо:
- Обрабатывать запросы кодов ошибок.
- Добавьте Dockerfile.
Эти сценарии были быстро разработаны для моих собственных потребностей, чтобы пропускать новую прошивку в устройства Sonoff, поскольку существующие инструменты казались слишком сложными и не смогли использовать ее на Linux. Я не гарантирую, что это работает в любых случаях. Пожалуйста, используйте его на свой страх и риск.