Sonoff-Diy-Ota-Firmware
명령 줄 프로세스는 REST API API http://developers.sonoff.tech/basicr3-rfr3-mini-http-api.html을 사용하여 Sonoff DIY 장치에 공중으로 새 펌웨어를 업로드합니다.
Ubuntu 20.04에서 Python 3.8을 사용하여 만들어졌으며 Sonoff Basic R3 및 Sonoff Mini에서 테스트했습니다.
Sonoff 장치는이 스크립트를 실행하는 컴퓨터와 함께 DIY 모드와 동일한 네트워크 (Sonoffdiy)에 있어야합니다.
이것은 필요합니다 :
- DIY 1.0 :
- 지정된 핀의 점퍼
- SSID와 Wi -Fi 네트워크 : Sonoffdiy 및 비밀번호 : 20170618SN
- DIY 2.0 : http://developers.sonoff.tech/sonoff-diy-mode-api-protocol.html을 확인하십시오
권장 사용 :
Appimage :
- Linux에서 릴리스 페이지에서 AppImage를 다운로드하여 실행하십시오.
파이썬 가상 환경 (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/zeroconf 덕분).
- 새 펌웨어를 업로드하려면 장치를 선택하십시오.
- HTTP 서버는 선택한 펌웨어의 디렉토리를 제공하기 위해 (rangehttpserver https://github.com/danvk/rangehttpserver) 시작합니다.
- 프로세스는 적절한 REST 요청을 사용하여 OTA 기능이 잠금 해제되도록합니다.
- 새 펌웨어의 HTTP 서버 링크를 제공하는 장치에 게시물 요청을 보냅니다.
- 전송이 끝나는 지 확인하기 위해 10 분의 수면. 당신이 그것이 끝났다면 (Tasmota Wi-Fi가 나타납니다) ctrl-c로 proceess를 죽입니다.
참고 :
- 장치가 MDNS 메시지에 응답하지 않으면 검색이 진행되는 동안 전원을 제거하고 다시 연결합니다.
종속성 :
- https://pypi.org/project/rangehttpserver/
- https://pypi.org/project/zeroconf
- https://pypi.org/project/requests/
- https://pypi.org/project/simple-term-menu/
TODO :
- 요청 오류 코드를 처리합니다.
- dockerfile을 추가하십시오.
이 스크립트는 기존 도구가 너무 복잡해 보이고 Linux에서 사용할 수 없었기 때문에 새 펌웨어를 Sonoff 장치로 플래시해야 할 필요성을 위해 빠르게 개발되었습니다. 나는 그것이 어떤 경우에도 작동한다고 보장하지 않습니다. 자신의 위험에 따라 사용하십시오.