mikrocontroller.net

Forum: Haus & Smart Home Sonoff flashen funktioniert nicht


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Walta S. (walta)


Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich versuche derzeit eine neue Firmware auf ein Sonoff Basic Schalter zu 
brennen damit ich ihn direkt in Apple HomeKit einbinden kann. Leider 
bekomme ich immer folgende Fehlermeldung:

Walters-iMac:~ walter$ 
/Users/walter/Desktop/Sonoff-Homekit-master/flash.sh ; exit;
/Users/walter/Desktop/Sonoff-Homekit-master/flash.sh: line 8: 
esptool.py: command not found
logout

Geöffnet habe ich das Programm mit Terminal. Ich hab auch gelesen, dass 
man Python installieren muss - hab ich gemacht. Als Serial Adapter 
verwende ich einen Arduino (mit ausgebauten Prozessor) - Egal ob er 
angesteckt ist oder nicht - es funktioniert nicht.

Konkret geht es um dieses Projekt:
https://github.com/Gruppio/Sonoff-Homekit

Hardware: Apple OSX
Softwarekenntnisse: Ein bisschen was mit Arduino. Also nicht wirklich.
Strom: Grobmotoriker - Kabel haben in der Regel 1,5mm2 und Spannungen 
unter 1 Volt sind Messfehler. Und ich weiss wo der Lötkolben sein 
heisses Ende hat.

Welche Infos braucht ihr noch?

Danke
Walta

: Bearbeitet durch User
von Alex (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Walta S. (walta)


Bewertung
-2 lesenswert
nicht lesenswert
Und wie geht das? Ich hab in Terminal folgendes eingetippt:

Walters-iMac:~ walter$ sudo pip install esptool
Password:
sudo: pip: command not found

Ich bin Apple User - ich arbeite mit drag and drop. Direkte 
Befehlseingabe an einem Terminal ist bei mir schon Jahrzehnte vorbei.

:-(
Walta

von Rosetta (Gast)


Bewertung
-4 lesenswert
nicht lesenswert
Linux ist kaka

von Walta S. (walta)


Bewertung
-3 lesenswert
nicht lesenswert
Rosetta schrieb:
> Linux ist kaka

Dankeschön
walta

von Timm R. (Firma: privatfrickler.de) (treinisch)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Walta,

Python ist schon da. Check mit
python --version

Dann pip Installer runterladen
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

und ausführen
python get-pip.py

kann sein, dass du sudo brauchst, dann eben
sudo python get-pip.py

viel Erfolg
 Timm

von Oliver H. (oliver_h911)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

versuch mal:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

Danach sollte das
sudo pip install esptool

klappen. Wenn das nicht hilft geht es hier weiter:

1. Welche Version von macOS benutz Du?

Apfel Menu > Über diesen Mac

2. Was kommt wenn Du die folgenden Kommandos auf der Konsole ausführst:
python -V 

Gibt die Version des default Interpreters aus sollte:
/usr/local/bin/python

sein.
which python

Gibt aus welcher Interpreter als default genutzt wird sollte
Python 2.7.16

sein.

von Walta S. (walta)


Bewertung
0 lesenswert
nicht lesenswert
Nach der Anleitung von Timm und Oliver hat sich einiges getan. Dinge 
wurden heruntergeladen und installiert, geendet hat es mit:

Successfully built esptool pyaes
Installing collected packages: pyserial, pyaes, ecdsa, esptool
Successfully installed ecdsa-0.14.1 esptool-2.8 pyaes-1.6.1 pyserial-3.4

Sehr schön.

Dann hab ich flash.sh nochmal gestartet und es kam:

WARNING: Flash size arguments in megabits like '8m' are deprecated.
Please use the equivalent size '1MB'.

Wenn ich die Datei flash.sh in Text Edit öffne dann steht dort:

#!/bin/bash

POWERON_STATE="ON" # Change this to "OFF" if you want that your Sonoff 
will be OFF when powered

SONOFF_PORT="/dev/cu.wchusbserial14310"

esptool.py \
            -p $SONOFF_PORT \
            --baud 115200 \
            write_flash \
            -fs 8m \
            -fm dout \
            -ff 40m \
            0x0 ./firmware/rboot.bin \
            0x1000 ./firmware/blank_config.bin \
            0x2000 ./firmware/Sonoff_$POWERON_STATE.bin

Ich werd mal versuchen -fs 8m auf -fs 1MB zu ändern und schau mal was 
passiert. Hab zwar keine Ahnung was ich da mache aber es läuft unter dem 
Titel "Jugend forscht"

walta

von Walta S. (walta)


Bewertung
0 lesenswert
nicht lesenswert
Das ist passiert:

esptool write_flash: error: argument <address> <filename>: [Errno 2] No 
such file or directory: './firmware/rboot.bin'

Die Datei boot.bin und der Ordner firmware ist aber vorhanden.

Grrrrr...

Walta

Gehe jetzt Fernsehen - muss nachdenken

: Bearbeitet durch User
von Walta S. (walta)


Bewertung
0 lesenswert
nicht lesenswert
Ich hab jetzt die Files und die Ordner direkt in das Programm 
geschrieben:

#!/bin/bash

POWERON_STATE="ON" # Change this to "OFF" if you want that your Sonoff 
will be OFF when powered

SONOFF_PORT="/dev/cu.wchusbserial14310"

esptool.py \
            -p $SONOFF_PORT \
            --baud 115200 \
            write_flash \
            -fs 1MB \
            -fm dout \
            -ff 40m \
            0x0 desktop/sonoff/firmware/rboot.bin \
            0x1000 desktop/sonoff/firmware/blank_config.bin \
            0x2000 desktop/sonoff/firmware/Sonoff_$POWERON_STATE.bin

Jetzt hab ich die nächste Fehlermeldung - er findet das 
/dev/cu.wchusbserial14310 nicht:

serial.serialutil.SerialException: [Errno 2] could not open port 
/dev/cu.wchusbserial14310: [Errno 2] No such file or directory: 
'/dev/cu.wchusbserial14310'
logout

Was ist das schon wieder?

danke
walta

von K. J. (theborg0815) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
SONOFF_PORT="/dev/cu.wchusbserial14310"

Da muss dein Serialport rein meist ist es /dev/ttyUSB0 oder ähnliches.

von Walta S. (walta)


Bewertung
0 lesenswert
nicht lesenswert
Als serialport verwende ich den Arduino. Werde mal schauen, wie der 
bezeichnet wird. Melde mich am Nachmittag wieder.

danke
walta

von David (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi Walta

ich hänge an dem gleichen Problem. Absoluter Anfänger, es geht aber mit 
trial und error voran :)

was deinen Port angeht:
Ich musste bei mir vorher noch Treiber installieren, dass dieser 
gefunden wird: https://www.ftdichip.com/Drivers/VCP.htm

Wenn installiert, dann wirst du bei Arduino unter Werkzeuge->Port 
fündig. Diesen musst du dann in der flash.sh abändern.


Trotz alledem kommt bei mir nun folgende Fehlermeldung:
"A fatal error occurred: Failed to connect to Espressif device: Timed 
out waiting for packet header"

Hat jemand ne Idee woran das liegt?

von David (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Edit:
funktioniert nun.
Falls es was hilft, das habe ich gemacht:

1. den Knopf auf dem Sonoff gedrückt halten, während ich des USB 
einstecke

2. Den Flash-Speicher auf dem Sonoff löschen mit "esptool.py 
erase_flash" im Terminal

3. USB-Stecker ziehen, Knopf drücken und wieder einstecken

4. die Datei Flash.sh geöffnet und folgendermassen geändert:

a) "-fs 8m" durch "-fs 1MB" ersetzt
b) "-p $SONOFF_PORT \" durch "-p /dev/cu.usbserial-A50285BI \" ersetzt 
(hier natürlich deinen eigenen einsetzen
c) "0x2000 ./firmware/Sonoff_$POWERON_STATE.bin" durch "0x2000 
desktop/sonoff/firmware/Sonoff_ON.bin" ersetzt (oder durch die 
Off-Datei, je nachdem was du oben gewählt hast).

5. den Text ab esptool.py kopieren und in Terminal einfügen

ab dann lief es.

von Walta S. (walta)


Bewertung
0 lesenswert
nicht lesenswert
Auch von mir ein kurzer Zwischenbericht.

Inzwischen konnte ich den Schalter umprogrammieren.

Wenn ich ihn anschliesse kann ich mich in sein WLAN einloggen.
In der Home app hab ich manuell den Code eingegeben (11111111) so wie 
auf der Homepage beschrieben. Nur das Gerät erscheint dann nicht. Die 
HomeApp such ein neues Gerät - aber findet es nicht.
HomeApp gelöscht und neu Installiert - geht auch nicht.

Keine Ahnung was jetzt schon wieder spinnt.

Danach hab ich versucht ihn nochmal zu flashen - nur ohne Erfolg: der 
Schalter wird vom ISP Arduino nicht gefunden.

Hier mein Code:

#!/bin/bash

POWERON_STATE="ON" # Change this to "OFF" if you want that your Sonoff 
will be OFF when powered

SONOFF_PORT="/dev/cu.usbmodem621"

esptool.py \
            -p $SONOFF_PORT \
            --baud 115200 \
            write_flash \
            -fs 1MB \
            -fm dout \
            -ff 40m \
            0x0 desktop/sonoff/firmware/rboot.bin \
            0x1000 desktop/sonoff/firmware/blank_config.bin \
            0x2000 desktop/sonoff/firmware/Sonoff_$POWERON_STATE.bin


Walta

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.